?
Seafile Docker 部署概览
基于 Docker 的 Seafile 安装由以下组件组成(Docker 镜像):
- Database: 存储与 Seafile 和 SeaDoc 相关的数据。
- Memcached: 缓存服务器。
- Caddy: Caddy 服务器使用户能够从外部访问 Seafile 服务(即 Seafile 服务器和 Sdoc 服务器),并修改 SSL 配置。
注意:只有 Seafile 11.0 版本或者更高版本,才支持集成 SeaDoc 。
HTTPS 和 Caddy 反向代理服务器
注意:从Seafile Docker 12.0起,HTTPS将由Caddy处理,Seafile Docker 默认使用的Caddy镜像为 lucaslorentz/caddy-docker-proxy:2.9 。
Caddy是一个现代的开源Web服务器,主要在Seafile Docker中绑定外部流量和内部服务。除了传统代理组件的优势之外(例如:Nginx),Caddy还为用户提供了更简单的配置去完成HTTPS证书的获取和更新。
要启用 HTTPS,用户只需在
.env
中配置以下字段:SEAFILE_SERVER_PROTOCOL=httpsSEAFILE_SERVER_HOSTNAME=example.com
使用自定义(现有)证书
使用
caddy.yml
,将创建一个默认的 volume-mount: /opt/seafile-caddy
中(您可以通过修改
.env
文件中的 SEAFILE_CADDY_VOLUME
)。按照惯例,您应该在容器主机文件系统中提供您的证书和密钥文件。 /opt/seafile-caddy/certs/
使其可供 Caddy 使用:
/opt/seafile-caddy/certs/├── cert.pem # xxx.crt in some case├── key.pem # xxx.key in some case
使用此命令,您可以生成自己的自定义证书:
cd /opt/seafile-caddy/certsopenssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout ./key.pem -out ./cert.pem
请注意,自定义证书不能用于 IP 地址。
然后修改
seafile-server.yml
以启用您的自定义证书,顺便,我们强烈建议您在执行此作之前备份 seafile-server.yml
:cp seafile-server.yml seafile-server.yml.baknano seafile-server.ymlservices: ... seafile: ... volumes: ... # If you use a self-generated certificate, please add it to the Seafile server trusted directory (i.e. remove the comment symbol below) # - "/opt/seafile-caddy/certs/cert.pem:/usr/local/share/ca-certificates/cert.crt" labels: caddy: ${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} # leave this variables only caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem" ...
注意:DNS 解析必须在容器内工作。
如果您使用的是像
my-custom-setup.local
这样的非正规域名,则必须确保 docker 容器可以解析此 DNS 查询。如果您不运行自己的 DNS 服务器,则必须将 extras_hosts 添加到您的 .yml
文件中修改
seahub_settings.py
并重启服务器如果您在初始部署时启用了 HTTPS,则可以跳过该部分(HTTPS 将在首次启动时生效)。
- 修改 seahub_settings.py 并将所有 http://seafile.example.com 更改为 https://seafile.example.com。
- 重新启动服务器:
docker compose down && docker compose up -d
本文链接:https://kinber.cn/post/5332.html 转载需授权!
推荐本站淘宝优惠价购买喜欢的宝贝: