Operating System: CentOS Linux 7 (Core)
Kernel: Linux 3.10.0-1127.el7.x86_64
Architecture: x86-64
还有没有升级的必要。
企业版,还能升级吗。
企业版 7.0.14(CentOS 7,二进制)升级路径:7.0.14 → 7.1 → 8.0,停在 8.0,之后转 Docker 继续升到最新版。以下命令假设安装目录为 /opt/seafile,运行用户为 seafile。
一、准备
-
在客户中心(https://customer.seafile.com/ ) 下载
seafile-pro-server-7.1.x.tar.gz与seafile-pro-server-8.0.x.tar.gz,上传到/opt/seafile/下(与现有版本目录同级)。 -
备份数据库与数据目录:
mysqldump -u root -p --all-databases --single-transaction > /backup/seafile-db-$(date +%F).sql
tar czf /backup/seafile-conf-data-$(date +%F).tar.gz \
/opt/seafile/conf /opt/seafile/seafile-data /opt/seafile/seafile-license.txt
- 记录当前版本号、数据库类型与版本、是否使用 LDAP/AD、是否启用搜索、附件存储方式(本地或对象存储)。升级前不要执行 GC。
二、升级到 7.1
- 安装 Python 3 与依赖:
yum install python3 python3-setuptools python3-pip python3-devel gcc gcc-c++ -y
pip3 install --timeout=3600 Pillow pylibmc captcha jinja2 sqlalchemy==1.3.8 \
django-pylibmc django-simple-captcha python3-ldap
- 停止服务:
cd /opt/seafile/seafile-server-latest
./seahub.sh stop
./seafile.sh stop
- 解压新版本并设置属主:
cd /opt/seafile
tar xf seafile-pro-server-7.1.x.tar.gz
chown -R seafile.seafile seafile-pro-server-7.1.x
- 执行升级脚本:
cd /opt/seafile/seafile-pro-server-7.1.x
./upgrade/upgrade_7.0_7.1.sh
- 清空 Seahub 缓存(使用 memcached 时重启该服务):
rm -rf /tmp/seahub_cache/*
systemctl restart memcached
- 切换软链并启动:
cd /opt/seafile
ln -sfn seafile-pro-server-7.1.x seafile-server-latest
cd seafile-server-latest
./seafile.sh start
./seahub.sh start
-
修改两处配置:SeafDAV 的反向代理从 fastcgi 改为
proxy_pass;内置 Office 预览按 7.1 版本文档调整配置。 -
验证登录、上传下载、搜索、在线预览正常后,进入下一步。
三、升级到 8.0
- 安装依赖:
yum install python3-devel mariadb-devel gcc gcc-c++ -y
sudo pip3 install future
sudo pip3 install mysqlclient==2.0.1 sqlalchemy==1.4.3
- 停止服务:
cd /opt/seafile/seafile-server-latest
./seahub.sh stop
./seafile.sh stop
- 解压并执行升级脚本:
cd /opt/seafile
tar xf seafile-pro-server-8.0.x.tar.gz
chown -R seafile.seafile seafile-pro-server-8.0.x
cd /opt/seafile/seafile-pro-server-8.0.x
./upgrade/upgrade_7.1_8.0.sh
- 切换软链并启动:
cd /opt/seafile
ln -sfn seafile-pro-server-8.0.x seafile-server-latest
cd seafile-server-latest
./seafile.sh start
./seahub.sh start
-
检查配置:
ccnet-server组件已移除,但ccnet.conf仍需保留;若使用 Shibboleth,把EXTRA_MIDDLEWARE_CLASSES改为EXTRA_MIDDLEWARE。 -
若使用了企业微信或钉钉的部门同步,补跑迁移脚本:
./seahub.sh python-env seahub/manage.py fix_work_weixin_departments_sync
./seahub.sh python-env seahub/manage.py fix_dingtalk_departments_sync
- 验证通过后,8.0 即为二进制部署的最后一站,保留旧版本目录与备份,不要删除。
四、迁移到 Docker
时点选在 8.0 之后。9.0 起社区版不再提供 CentOS 包,Elasticsearch 7.x 需单独部署,内置 Office 预览改为独立镜像;12.0 起二进制部署标记为 deprecated,13.0 起社区版不再支持二进制(系统依赖仅覆盖 Ubuntu 22.04/24.04、Debian 11/12/13)。
-
准备一台新服务器(Ubuntu 22.04 或 Debian 12),安装 Docker 与 Docker Compose。
-
按官方专业版 Docker 部署文档起一套环境,镜像版本与旧环境一致(8.0.x),先完成基础部署。
-
旧服务器停止全部服务:
cd /opt/seafile/seafile-server-latest
./seafile.sh stop
./seahub.sh stop
systemctl stop nginx redis elasticsearch
systemctl disable nginx redis elasticsearch
- 导出数据库并打包数据目录:
mysqldump -u root -p --all-databases --single-transaction > /backup/seafile-db-final.sql
tar czf /backup/seafile-data-final.tar.gz /opt/seafile/seafile-data /opt/seafile/conf
-
在新服务器上导入数据:资料库数据放回
/opt/seafile-data/seafile/,数据库导入容器内的 MariaDB(数据库使用容器自带的 MariaDB 10.11,不要沿用 CentOS 7 上的旧版本),具体命令见官方文档 Migrate from non-docker deployment to docker 的「Recover the Database」一节。 -
将
seafile-license.txt放入/opt/seafile-data/,确认授权用户数与有效期,然后启动:
cd /opt/seafile
docker compose up -d
docker compose logs -f
- 验证登录、同步客户端、历史版本、分享链接、搜索、在线预览、WebDAV 全部正常,再进入版本升级。
五、Docker 内逐版本升级
-
每次只跨一个大版本,顺序为 9.0 → 10.0 → 11.0 → 12.0 → 13.0 → 14.0。跨版本前先读该版本的 upgrade notes。
-
升级动作(以 9.0 为例):修改
.env中的SEAFILE_IMAGE为seafileltd/seafile-pro-mc:9.0-latest,然后:
cd /opt/seafile
docker compose down
docker compose pull
docker compose up -d
docker compose logs -f
- 每个版本完成后验证再继续,各版本需额外处理的事项:
- 9.0:Elasticsearch 升级到 7.x 并重建索引;Office 预览改为独立镜像。
- 10.0:Elasticsearch 升级到 8.x;可启用通知服务。
- 11.0:LDAP 配置从
ccnet.conf迁移到seahub_settings.py并执行migrate_ldapusers.py;OAuth 配置相应调整;seahub_settings.py增加CSRF_TRUSTED_ORIGINS。 - 12.0:新建
.env文件;升级前清理 Activity 表,否则数据库升级耗时较长;SeaDoc 独立部署。 - 13.0:WebDAV 不再支持 LDAP 账号直接登录,用户需自行生成 token;旧文件标签需迁移。
- 14.0:多项配置从
seahub_settings.py迁移到.env;月流量限额配置项改名。
- 官方文档:https://manual.seafile.com/latest/upgrade/upgrade/ ,各版本的 upgrade notes 需逐一核对该版本的实际变更。
