本文软件应网友
逍遥客的要求而编写,因为他在群晖及威联通上均遇到了部署问题。
老苏应该是 16 年左右的时候,用笔记本电脑 + USB 移动硬盘 + ngrok + Seafile Windows 服务端 + Seafile Windows 挂载盘客户端搭建过可以远程访问的私有云盘,大概这么用了 3 年,直到最后移动硬盘挂了
在老苏看来,Seafile 无论对于文件存储、共享、协作的多样化需求,都能得到满足。唯一让老苏觉得不爽的是,文件是以私有的分块的形式存储在服务器上,虽然能提高文件传输效率,但存储出现问题时,数据的恢复要麻烦的多
什么是 Seafile ?
Seafile是一个开源文件同步和共享解决方案,专为高可靠性、性能和生产力而设计。跨设备和团队同步、共享和协作。Seafile是Dropbox和Synology Drive的替代品。
Windows、macOS、Linux、iOS 和 Android 的客户端,支持多种操作系统。Seafile,增加数据的控制和隐私性。总之,Seafile 是一个功能强大的文件同步和共享解决方案,适合个人用户和团队使用。
在群晖上以 Docker 方式安装。
在注册表中搜索 seafile-mc ,这是 Seafile 的社区版,选择第一个 seafileltd/seafile-mc,版本选择 12.0-latest。
本文写作时,
12.0-latest版本对应为12.0.11;
采用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件
根据官方提供的文件修改,源文件地址: https://cloud.seafile.com/d/f4e8883db63845d29350/?p=%2F12.0&mode=list
services:
db:
image:mariadb:10.11
container_name:seafile-mysql
environment:
-MYSQL_ROOT_PASSWORD=seafiledbpassword
-MYSQL_LOG_CONSOLE=true
-MARIADB_AUTO_UPGRADE=1
volumes:
-./data:/var/lib/mysql
memcached:
image:memcached:1.6.18
container_name:seafile-memcached
entrypoint:memcached-m256
seafile:
image:seafileltd/seafile-mc:12.0-latest
container_name:seafile
ports:
-17080:80
-17088:8080
# - 17443:443 # If https is enabled, cancel the comment.
volumes:
-./shared:/shared
environment:
-DB_HOST=db
-DB_ROOT_PASSWD=seafiledbpassword
-TIME_ZONE=Asia/Shanghai
-[email protected]
-SEAFILE_ADMIN_PASSWORD=laosu@123456
-SEAFILE_SERVER_HOSTNAME=192.168.0.197
-SEAFILE_SERVER_LETSENCRYPT=false
-FORCE_HTTPS_IN_CONF=false
-JWT_PRIVATE_KEY=cLP3RW5wu2G2yJCzsWFcM2DSxaMxx7Gc
-SERVICE_URL=http://192.168.0.197:17080
-FILE_SERVER_ROOT=http://192.168.0.197:17080/seafhttp
depends_on:
-db
-memcached
下面是环境变量及其说明MYSQL_ROOT_PASSWORDMariaDBroot 用户密码MYSQL_LOG_CONSOLEMARIADB_AUTO_UPGRADEMariaDB 数据库DB_HOSTSeafiledb)DB_ROOT_PASSWDSeafileroot 密码TIME_ZONEAsia/ShanghaiSEAFILE_ADMIN_EMAILSeafileSEAFILE_ADMIN_PASSWORDSeafileSEAFILE_SERVER_HOSTNAMESeafileIP 地址SEAFILE_SERVER_LETSENCRYPTLet's Encrypt SSL 证书FORCE_HTTPS_IN_CONFHTTPSJWT_PRIVATE_KEYJSON Web Token (JWT) Seafile 需要一个长度不小于 32 个字符的随机字符串SERVICE_URLSeafileURL,用于外部访问FILE_SERVER_ROOTURL,指向 Seafile 的文件接口
其中最后的三项是老苏根据需要,在官方的基础上新增的,其中
JWT_PRIVATE_KEY 是为了解决安装过程中,日志中出现的错误SERVICE_URL 是为了日志中出现的跨域问题FILE_SERVER_ROOT 是为了解决上传时出现的网络错误然后执行下面的命令
# 新建文件夹 seafile 和 子目录
mkdir -p /volume1/docker/seafile/{data,shared}
# 进入 seafile 目录
cd /volume1/docker/seafile
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
第一次启动的时间会比较长,如果只是看到
502 Bad Gateway不用担心,多等一会儿
在浏览器中输入 http://群晖IP:17080 就能看到登录界面
但是老苏用环境变量中设置的账号、密码登录会失败,从日志看出现过下面的内容
Error happened during creating seafile admin.
关于这个问题,按照 https://bbs.seafile.com/t/topic/20232/2 里的说法,是因为 docker 版本低于 20.10.10 导致的
所以老苏只能尝试用命令行,来创建管理员。只要根据提示输入用户名和密码就可以
# 创建管理员
docker exec -it seafile /opt/seafile/seafile-server-latest/reset-admin.sh
虽然看起来会有一个警告,但不会影响创建管理员用户
这个账号可以正常登录,并看到主界面
Seafile 本身的使用很简单,上传一个文件试试是否正常
除了网页外,还支持各平台的客户端应用,包括了桌面同步客户端、挂载盘客户端和移动客户端,下载地址:https://www.seafile.com/download
老苏用过 Windows 挂载盘客户端,可以让你通过本地虚拟磁盘直接访问服务器上的文件,无需同步。不占用本地磁盘。支持视频直接播放。
或者在启用了 WebDAV 协议后,可以直接使用支持 WebDAV 的客户端访问
docker-compose.yml 中的 seafile 部分,将 8080 端口暴露出来 ports:
- 17080:80
- 17088:8080
# - 17443:443 # If https is enabled, cancel the comment.
seafdav.conf,内容如下[WEBDAV]
enabled = true
port = 8080
debug = true
share_name = /seafdav
workers = 5
timeout = 1200
上传并覆盖掉 /shared/seafile/conf/seafdav.conf 文件
设置 中设置 WebDAV 密码需要注意的是,页面上显示的
WebDAV URL的端口是不正确的,不用理会
默认 WebDAV 的密码是没有设置的
seafile 容器。# 重启容器
docker-compose restart
WebDAV 客户端,例如 RaiDrive可以看到之前通过 Web 上传的文件
在 Seafile 中,当文件被删除时,组成这些文件的块数据不会立即删除,因为可能有其他文件也会引用这些块数据(用于去重功能的实现)。为了真正删除无用的块数据,还需要额外运行 GC 程序。
# 垃圾回收
docker exec -it seafile /scripts/gc.sh
对于社区版来说,该程序会暂停 Seafile 服务
但这是一个相对较快的程序,一旦程序运行完成,Seafile 服务也会自动重新启动。
1. haiwen/seafile: High performance file syncing and sharing, with also Markdown WYSIWYG editing, Wiki, file label and other knowledge management features.
地址:https://github.com/haiwen/seafile
2. Seafile - 开源的企业私有网盘 私有云存储软件 企业维基 知识管理
地址:https://www.seafile.com/home/
3. 简介 - seafile-manual-cn
地址:https://cloud.seafile.com/published/seafile-manual-cn/
4. Seafile Cloud
地址:https://cloud.seafile.com/d/f4e8883db63845d29350/
5. WebDAV extension - Seafile Admin Manual
地址:https://manual.seafile.com/12.0/extension/webdav/
6. docker部署seafile最新版v11报错 - 服务器问题 - Seafile 用户论坛
地址:https://bbs.seafile.com/t/topic/20232/2
@所有人:写文不易,如果你都看到了这里,请点个赞和在看,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。点点广告就是对老苏最大的支持。