新一代文件管理平台Seafile

新一代文件管理平台Seafile
set 限制解除
新一代文件管理平台Seafile
原创
杨浦老苏
各种折腾
2025年04月23日 19:02 上海
各种折腾 聚沙成塔,集腋成裘 879篇原创内容
公众号 ,
简介
本文软件应网友 逍遥客 的要求而编写,因为他在群晖及威联通上均遇到了部署问题。 老苏应该是 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 -m 256
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_PASSWORD MariaDB 数据库的 root 用户密码 MYSQL_LOG_CONSOLE 启用控制台日志输出 MARIADB_AUTO_UPGRADE 自动升级 MariaDB 数据库 DB_HOST Seafile 连接的数据库主机名(此处为 db ) DB_ROOT_PASSWD Seafile 连接数据库时使用的 root 密码 TIME_ZONE 设置服务器时区,这里为 Asia/Shanghai SEAFILE_ADMIN_EMAIL Seafile 管理员的电子邮件地址 SEAFILE_ADMIN_PASSWORD Seafile 管理员账户的密码 SEAFILE_SERVER_HOSTNAME Seafile 服务器的主机名或 IP 地址 SEAFILE_SERVER_LETSENCRYPT 是否启用 Let's Encrypt SSL 证书 FORCE_HTTPS_IN_CONF 是否强制在配置中启用 HTTPS JWT_PRIVATE_KEY JSON Web Token (JWT) 的私钥, Seafile 需要一个长度不小于 32 个字符的随机字符串 SERVICE_URL Seafile 服务的 URL ,用于外部访问 FILE_SERVER_ROOT 文件服务的根 URL ,指向 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 协议后,可以直接使用支持 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 服务也会自动重新启动。 参考文档
- 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
- Seafile - 开源的企业私有网盘 私有云存储软件 企业维基 知识管理 地址:https://www.seafile.com/home/
- 简介 - seafile-manual-cn 地址:https://cloud.seafile.com/published/seafile-manual-cn/
- Seafile Cloud 地址:https://cloud.seafile.com/d/f4e8883db63845d29350/
- WebDAV extension - Seafile Admin Manual 地址:https://manual.seafile.com/12.0/extension/webdav/
- docker部署seafile最新版v11报错 - 服务器问题 - Seafile 用户论坛 地址:https://bbs.seafile.com/t/topic/20232/2
各种折腾 聚沙成塔,集腋成裘 879篇原创内容
公众号 , @所有人:写文不易,如果你都看到了这里,请点个 赞 和 在看 ,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。点点广告就是对老苏最大的支持。
预览时标签不可点
杨浦老苏
微信扫一扫赞赏作者 喜欢作者
关闭
更多
系统错误,请稍后重试
返回 其它金额 更多
赞赏金额 ¥ 最低赞赏 ¥0
1 2 3 4 5 6 7 8 9 0 .
群晖 759 docker 766 网盘 54
群晖 · 目录
上一篇 NewsNow:优雅地阅读实时热门新闻 下一篇 AI网络视频录像机Viseron
关闭
更多
搜索「」网络结果
当前内容可能存在未经审核的第三方商业营销信息,请确认是否继续访问。
继续访问 取消 微信公众平台广告规范指引
各种折腾
赞 分享 推荐 写留言
关闭 0个朋友 更多
: , , , , , , , , , , , , 。
视频 小程序 赞 ,轻点两下取消赞 在看 ,轻点两下取消在看 分享 留言 收藏 听过
可在「公众号 > 右上角 > 划线」找到划线过的内容
我知道了
留言
关闭
更多
确认提交投诉
你可以补充投诉原因(选填)
确定