
ggogel/seafile-caddy基于Docker、Docker Swarm和Kubernetes的Seafile完整容器化部署方案,采用微服务架构实现前后端分离,增强安全性与可维护性。
seafile-server
seahub
seahub-media
db
memcached
seafile-caddy
注:官方Docker部署中,自定义内容和头像由Nginx提供服务,seahub单独无法提供这些服务,因此需要独立数据卷。
需安装Docker和docker-compose。
Kubernetes部署参考Wiki / Kubernetes。
Docker Swarm模式部署注意事项参考Wiki / Docker Swarm。
以官方Compose文件为起点:
bashwget [***]
重要:环境变量仅在首次部署时生效,卷中已存在的配置不会被覆盖。首次部署需仔细配置,后续修改参考Seafile文档。
DB_HOST=db:mariadb服务名称(Docker内部主机名)。DB_ROOT_PASSWD=db_dev:mariadb root用户密码,需与MYSQL_ROOT_PASSWORD一致。TIME_ZONE=Europe/Berlin:Seafile使用的时区。SEAFILE_URL=seafile.mydomain.com:用于SERVICE_URL和FILE_SERVER_ROOT,后续修改需通过Web界面的“系统管理”,配置错误可能导致文件上传问题。HTTPS=false:若使用HTTPS反向代理,设为true,将SERVICE_URL和FILE_SERVER_ROOT中的http替换为https。SEAFILE_ADMIN_EMAIL=***:初始管理员***/用户名。SEAFILE_ADMIN_PASSWORD=asecret:初始管理员密码。MYSQL_ROOT_PASSWORD=db_dev:mariadb root用户密码,需与DB_ROOT_PASSWD一致。MYSQL_LOG_CONSOLE=true:启用控制台日志。Caddy反向代理暴露80端口,已有反向代理可指向该端口。
与官方部署不同,本方案不包含HTTPS和Let's Encrypt功能,因Docker用户通常已有相关反向代理解决方案。
配置完成后执行:
bashdocker-compose -p seafile up -d
配置完成后执行:
bashdocker stack deploy -c docker-compose.yml seafile
所有服务连接至seafile-net(默认内部网络),可能阻断外部服务访问。解决方案参考Wiki文章。
高级配置及故障排除请参考Wiki。如遇bug或功能需求,可提交issue。
本项目仅支持符合Compose Specification的工具(如docker compose、podman compose、nerdctl compose及Kubernetes)。不支持podman quadlet、podman play等工具,因其将所有容器运行在同一pod中,导致网络结构改变,此类问题请避免提交issue。





manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务