主要变更
Seafile 12.0 版本主要有以下变化:
-
新版UI
-
SeaDoc 现在是 1.0 稳定版,提供了在线文档协同功能
-
一个新的 Wiki 模块(仍处于测试阶段,默认不启用)
-
新的垃圾回收机制,被删除的文件将记录在数据库中以便快速列出;在旧版本中,被删除的文件是从资料库历史记录中扫描的,速度较慢
-
社区版现在也支持在线 GC 了
配置变化:
-
Notification 通知服务在新版本被打包到其自己的 Docker 镜像中。
-
对于二进制包的安装,使用新的 .env 文件来进行配置,这些配置项由 Seafile 中的不同组件共享。我们将其命名为 .env 以便 与 Docker 的安装保持一致。
-
密码强度级别由算法自动计算,旧的配置项USER_PASSWORD_MIN_LENGTH、USER_PASSWORD_STRENGTH_LEVEL 被移除,仅保留使用USER_STRONG_PASSWORD_REQUIRED 。
-
ADDITIONAL_APP_BOTTOM_LINKS 被移除,新版本中导航侧边栏不再保留底部栏。
-
SERVICE_URL 和 FILE_SERVER_ROOT 被移除。在.env文件中,SERVICE_URL 将通过 SEAFILE_SERVER_PROTOCOL 和 SEAFILE_SERVER_HOSTNAME 计算得出。
-
ccnet.conf 配置文件被移除,它的一些配置项迁移到了 .env 文件中,其他的同名配置项则从名称相同的 seafile.conf 中读取。
其他变化:
-
一款新的轻量级搜索引擎 SeaSearch。SeaSearch 是可选的,ElasticSearch 仍然可用 。
重大变更:
-
出于安全考虑,WebDAV不再支持使用LDAP账户登录,使用 LDAP 账户的用户必须在个人资料页面生成一个 WebDAV 访问令牌。
-
[文件标签] 当前的文件标签功能已被弃用。我们将在 13.0 版本中使用新的数据管理模块重新实现一个新的文件标签功能。
-
对于基于ElasticSearch的搜索,不再支持 doc/xls/ppt 文件类型的全文搜索,这样能够使 Seafile 移除对Java的依赖。
现在已经不再推荐
使用二进制包来部署 Seafile ,我们会在 13.0 版本中不再支持
二进制包的部署方式
。我们建议您将现有的 Seafile 部署迁移到基于 Docker 的部署。
ElasticSearch 更改(仅限专业版)
Elasticsearch 版本在 Seafile 12.0 版本中未更改
安装 Python 依赖
请注意,您应该使用 root 用户或者 sudo 命令在系统范围内来安装 Python 依赖。
-
Ubuntu 22.04/24.04
sudo pip3 install future==1.0.* mysqlclient==2.2.* pillow==10.4.* sqlalchemy==2.0.* \
gevent==24.2.* captcha==0.6.* django_simple_captcha==0.6.* djangosaml2==1.9.* \
pysaml2==7.3.* pycryptodome==3.20.* cffi==1.17.0 python-ldap==3.4.* PyMuPDF==1.24.*
升级到 12.0.x(二进制包部署)
注意:
如果您已经部署了Notification通知服务,该服务
应使用与 Seafile 服务相同的版本重新部署。
例如:
-
Seafile server: 12.0.3
-
notification-server: 12.0.3
您可以在通知服务器主机中修改
.env
以重新部署。
NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:12.0-latest
重启通知服务器:
docker compose restart
清理数据库:
1、停止 Seafile-11.0.x 服务。
2、进入 Seafile-12.0.x 目录, 运行以下脚本:
upgrade/upgrade_11.0_12.0.sh
3、
在 conf / 目录中创建
.env
文件 (conf/.env)
JWT_PRIVATE_KEY=xxx
SEAFILE_SERVER_PROTOCOL=https
SEAFILE_SERVER_HOSTNAME=seafile.example.com
SEAFILE_MYSQL_DB_HOST=db # your MySQL host
SEAFILE_MYSQL_DB_PORT=3306
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=<your MySQL password>
SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db
注意:
JWT_PRIVATE_KEY是一个长度不小于32个字符的随机字符串,可用
pwgen -s 40 1
进行生成。
4、启动Seafile 12.0.x 服务
5、升级notification通知服务
注意:
通知服务被是基于 Docker 的部署配合使用而设计的。若要使其与同一服务器上的
Seafile 二进制包
配合使用,您需要正确地为通知服务器添加 Nginx 规则。
升级SeaDoc(由0.8到1.0)
如果您已使用 Seafile v11.0 部署了 SeaDoc v0.8,则可以通过以下两个步骤将其升级到 1.0:
-
删除 sdoc_db。
-
重新部署 SeaDoc 服务器。意味着要删除旧的 SeaDoc 部署并重新部署一个新的 SeaDoc 服务器。
注意:官方不再支持
在同一服务器上部署 SeaDoc 和 Seafile 二进制包,如果确要如此,您需要正确地为 SeaDoc 服务器添加 Nginx 规则。
删除 sdoc_db
Seadoc从 1.0 版本开始,使用 seahub_db 数据库来存储其操作日志,不再需要额外的数据库 sdoc_db。将 Seafile 服务从 11.0 版本升级到 12.0 版本时,seahub_db 中的数据库表会自动创建,sdoc_db数据可以直接删除。
部署一个新的 SeaDoc 服务
问题
我们在常见问题解答中记录了用户在升级到 12.0 版本时遇到的常见问题,或许您能从中找到解决方案
https://cloud.seatable.io/dtable/external-links/7b976c85f504491cbe8e/?tid=0000&vid=0000