主要变更
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
sudopip3installfuture==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.0python-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
重启通知服务器:
dockercomposerestart
清理数据库:
1、停止 Seafile-11.0.x 服务。
2、进入 Seafile-12.0.x 目录, 运行以下脚本:
upgrade/upgrade_11.0_12.0.sh3、在 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