
由于我把 … 阅读全文

由于我把所有的数据都放在 seafile-pro 这个项目文件夹下面,因此我把所有的 /opt 都改为了./data,用于持久化数据。

如果服务要上公网的话,用 http 是不合适的,因此我们就不配置 http 了,一开始就直接上 https。因此 SEAFILE_SERVER_HOSTNAME 填写域名,后面就分别以 seafile.example.com为例。SEAFILE_SERVER_HOSTNAME 填写 https。
https 证书配置
中文的安装手册里面没有 https 的内容,需要在英文文档查看。
首先下载你申请的域名证书,把他们改名后放到以下位置。
./data/seafile-caddy/certs/
├── cert.pem # xxx.crt in some case
├── key.pem # xxx.key in some case
修改 seafile-server.yml 文件。
services:
...
seafile:
...
volumes:
...
labels:
caddy: ${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
# 添加这一行
caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem"
...
然后直接docker compose up -d即可。
此外,如果你先用了 http,后续想要更换为 https 的话,还需要修改一下seahub_settings.py,文件目录是./data/seafile-data/seafile/conf/seahub_settings.py
把所有的 http://seafile.example.com 更改为 https://seafile.example.com。然后启动
启动后 502 错误
表明已经成功了,等待几分钟初始化即可。
升级 Seafile 13,把我吓惨……
13.0 升级说明
这些注释提供了有关更改的其他信息。请始终遵循主要升级指南。
对于基于 docker 的版本,请查看升级 Seafile Docker 镜像
重要的发布更改
Seafile 13.0 版有以下重大变化:
SeaDoc:SeaDoc 现在是 2.0 版本,除了支持 sdoc 之外,它还支持白板
缩略图服务器:添加了新的缩略图服务器组件,以提高缩略图生成的性能,并支持视频的缩略图
元数据服务器:可以使用新的元数据服务器组件来管理扩展文件属性
通知服务器:如果启用了通知服务器,Web 界面现在支持在其他人添加或删除文件时进行实时更新
SeaSearch:SeaSearch 现已发布 1.0 版本,支持全文搜索
配置更改:
数据库和 memcache 配置添加到 .env 中,建议使用环境变量来配置数据库和 memcache
建议将 Redis 用作 memcache 服务器
(可选)S3 配置可以通过环境变量完成,并且大大简化
Elasticsearch 现在有自己的 yml 文件
重大变更:
出于安全原因,WebDAV 不再支持使用 LDAP 帐户登录,使用 LDAP 帐户的用户必须在配置文件页面生成 WebDAV 令牌
【文件标签】旧文件标签功能无法再使用,界面提供升级通知,将数据迁移到新文件标签功能
社区版不再支持使用二进制包部署 Seafile。我们建议您将现有的 Seafile 部署迁移到基于 docker 的部署。
ElasticSearch 更改(仅限专业版)
Elasticsearch 版本在 Seafile 13.0 版本中没有更改
看着这 Seafile 13 的升级说明,我挺馋的。主要是馋这个 AI 功能:

所以就跟着官方的升级文档一步步尝试升级,docker 版本升级指南
中间的过程就不说了,一把辛酸泪,反正最终是失败了……
不过我也不是完全没有准备,我还是做好了自认为很充分的备份的:
- 使用 duplicati 进行了加密备份
- 使用了系统的快照功能保存了快照
- 加密备份还上传了一份到百度云
我自认为数据肯定不会丢失的,所以就先这样吧。
但是,安装失败后,我恢复快照,结果 Seafile12 跑不起来了,查看日志:出现了一个权限错误,大概意思是某个脚本应该由用户 ubuntu 来执行,而不是使用 root 用户,看到这我心都凉了半截,因为我虽然备份了整个 docker 文件夹,但我没有备份单独的文件……一旦 docker 跑不起来,我的数据就危了。
冷静下来后,我进入 Seafile 容器寻找问题,还好,很顺利的找到了。
root@b1206ae45dce:/opt/seafile# cd /
root@b1206ae45dce:/# ll | grep shared
drwxr-x--x+ 1 ubuntu 1001 32 Jun 9 16:53 shared/
这个目录被 ubuntu 所有了,显然是不对的,因为容器内所有的操作都需要 root 来进行
chown -R root:root shared/
然后重启 docker compose,就不会再报错了。 收起
