从Seafile 12.0升级到Seafile 13.0
7
月被平台集中处理了几篇旧文,进入 8
月后感觉似乎被限流了,阅读量一路走低。老苏打算等手上存稿发完后,就不再按时更新了。未来的更新将转为不定期形式,随缘相见。感谢大家的理解与支持!
前言
如果没有十分必要的理由,老苏不建议升级,如果执意不听劝,请先做好必要的备份;
如果你是按照老苏的 新一代文件管理平台Seafile 中的方法安装的 Seafile 12.0
,现在想升级到 13.0
,可以参考本文。升级的目的,是为了可以无痛的使用原来的数据。
但是如果你是新装 Seafile 13.0
,建议你直接去看官方的文档,获得并体验新功能
升级
本次升级的一个核心的架构变化是 13.0 引入了 Redis 服务作为缓存和处理消息通知的后端,因此增加了与 Redis
相关的配置。
docker-compose.yml
13.0
的 docker-compose.yml
主要参考了官方的示例:https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
1 | services: |
环境变量变更对比
下表总结了从 12.0
到 13.0
的主要环境变量变化、移除或替换情况。
12.0 环境变量 |
13.0 环境变量 |
说明 |
---|---|---|
DB_HOST |
SEAFILE_MYSQL_DB_HOST |
数据库主机地址。13.0 的变量名更新,更具描述性。 |
DB_ROOT_PASSWD |
SEAFILE_MYSQL_DB_PASSWORD , INIT_SEAFILE_MYSQL_ROOT_PASSWORD |
数据库 root 用户密码。13.0 中拆分为更具体的变量,一个用于常规连接,一个用于服务初始化。 |
TIME_ZONE |
TIME_ZONE |
时区设置。此变量保持不变。 |
SEAFILE_ADMIN_EMAIL |
INIT_SEAFILE_ADMIN_EMAIL |
管理员邮箱。13.0 中添加了 INIT_ 前缀,明确表示此变量仅在首次初始化时使用。 |
SEAFILE_ADMIN_PASSWORD |
INIT_SEAFILE_ADMIN_PASSWORD |
管理员密码。与管理员邮箱类似,13.0 中添加了 INIT_ 前缀。 |
SEAFILE_SERVER_HOSTNAME |
SEAFILE_SERVER_HOSTNAME |
Seafile 服务器的主机名或 IP 地址。此变量保持不变。 |
SERVICE_URL |
SEAFILE_SERVER_PROTOCOL , SITE_ROOT |
完整的服务访问 URL 。13.0 中此设置被拆分,由 SEAFILE_SERVER_PROTOCOL (协议) 和 SITE_ROOT (站点根路径) 等变量组合,与 SEAFILE_SERVER_HOSTNAME 和端口共同构成完整 URL,配置更灵活。 |
FILE_SERVER_ROOT |
已移除 | 文件服务器的访问 URL。在 v13.0 中,此 URL 由系统根据 SEAFILE_SERVER_PROTOCOL 和 SEAFILE_SERVER_HOSTNAME 等设置自动生成。 |
SEAFILE_SERVER_LETSENCRYPT |
已移除 | 用于自动配置 Let's Encrypt SSL 证书。13.0 中已移除,HTTPS 配置方式已变更。 |
FORCE_HTTPS_IN_CONF |
已移除 | 强制在配置文件中生成 HTTPS 相关的 URL 。13.0 中已移除。 |
JWT_PRIVATE_KEY |
JWT_PRIVATE_KEY |
用于 OnlyOffice/Collabora Online 集成的 JWT 密钥。此变量保持不变。 |
13.0 新增的环境变量
13.0
引入了大量新的环境变量,以支持新功能(如 SeaDoc
、AI
)并提供更精细化的配置。
13.0 环境变量 |
说明 |
---|---|
数据库配置 | |
SEAFILE_MYSQL_DB_PORT |
数据库端口,默认为 3306 。 |
SEAFILE_MYSQL_DB_USER |
连接数据库的用户名,必须设为 root ,否则数据库连接会失败。 |
SEAFILE_MYSQL_DB_CCNET_DB_NAME |
Ccnet 数据库的名称。 |
SEAFILE_MYSQL_DB_SEAFILE_DB_NAME |
Seafile 数据库的名称。 |
SEAFILE_MYSQL_DB_SEAHUB_DB_NAME |
Seahub 数据库的名称。 |
服务及URL配置 | |
SEAFILE_SERVER_PROTOCOL |
服务器协议,http 或 https 。 |
SITE_ROOT |
部署的子目录,例如 /seafile/ 。如果部署在根目录,则为 / 。 |
NON_ROOT |
是否以非 root 用户身份运行容器内的服务。 |
SEAFILE_LOG_TO_STDOUT |
是否将日志输出到标准输出(stdout )。 |
缓存配置 (Redis & Memcached) | |
CACHE_PROVIDER |
指定缓存后端,redis 或 memcached 。13.0 推荐使用 redis 。 |
REDIS_HOST |
Redis 服务的主机名。 |
REDIS_PORT |
Redis 服务的端口。 |
REDIS_PASSWORD |
Redis 服务的密码。 |
MEMCACHED_HOST |
Memcached 服务的主机名。 |
MEMCACHED_PORT |
Memcached 服务的端口。 |
SeaDoc (新功能) | |
ENABLE_SEADOC |
是否启用 SeaDoc (在线文档) 功能。 |
SEADOC_SERVER_URL |
SeaDoc 服务的外部访问 URL。 |
SEADOC_VOLUME |
存储 SeaDoc 数据的挂载卷路径。 |
SEADOC_IMAGE |
SeaDoc 服务使用的 Docker 镜像。 |
通知服务 | |
ENABLE_NOTIFICATION_SERVER |
是否启用实时通知服务。 |
INNER_NOTIFICATION_SERVER_URL |
内部通知服务的 URL 。 |
NOTIFICATION_SERVER_URL |
外部可访问的通知服务 URL 。 |
NOTIFICATION_SERVER_IMAGE |
通知服务使用的 Docker 镜像。 |
AI 服务 (新功能) | |
ENABLE_SEAFILE_AI |
是否启用 AI 功能。 |
SEAFILE_AI_SERVER_URL |
AI 服务的主机 URL 。 |
SEAFILE_AI_SECRET_KEY |
用于 AI 服务的密钥。 |
其他限制 | |
MD_FILE_COUNT_LIMIT |
存储库中最大文件数限制。 |
升级步骤
依次按下面的步骤执行
1 | # 1、进入 seafile 目录 |
运行
在浏览器中输入 http://群晖IP:17080
就能看到登录界面
登录后查看版本,已经是 13.0.8
了
说明
由于时间的关系,未做深入测试,可能会存在错误,需要自己慢慢去摸索,尤其是新功能
遇到任何问题,可以去官方论坛咨询:https://bbs.seafile.com
参考文档
Upgrade notes for 13.0.x - Seafile Admin Manual
地址:https://manual.seafile.com/13.0/upgrade/upgrade_notes_for_13.0.x/Upgrade Seafile Docker - Seafile Admin Manual
地址:https://manual.seafile.com/13.0/upgrade/upgrade_docker/Environment variables - Seafile Admin Manual
地址:https://manual.seafile.com/13.0/config/env/Seafile - 开源的企业私有网盘 私有云存储软件 企业维基 知识管理
地址:https://www.seafile.com/features/