akhan
2026 年5 月 21 日 03:21
1
请按照以下模版详细描述您遇到的问题:
当前服务器和客户端版本
seafile-mc : 13.0
caddy-docker-proxy 2.12-alpine
sdoc-server: 2.0
操作过程(出现错误的操作步骤)
我才用docker-compise方式部署。使用了 caddy 。
部署在我司内网。通过宿主机IP能够正常访问 seafile .
但我希望可以在互联网访问,我司的网络情况是 互联网可以访问到 一台内部的统一NG的指定端口,即这台NG的 8080端口暴露在互联网了, 然后我在这在NG配置了 一个反向代理信息如下:
location /seafile/ {
proxy_pass http://seafile宿主机IP/ ;
}
我在互联网 访问 http://公网IP/seafile/ 是可以正常打开首页。但是输入账号密码点击登录后 返回 403 见下方截图。
错误截图
错误日志
djz
2026 年5 月 21 日 04:01
2
浏览器访问的地址,即为 env 文件中配置的 SEAFILE_SERVER_HOSTNAME。
修改标准端口参考下面的方法(根据实际情况修改 https 或 http):
1.修改 caddy.yml
services:
caddy:
image: ${SEAFILE_CADDY_IMAGE:-lucaslorentz/caddy-docker-proxy:2.9-alpine}
restart: unless-stopped
container_name: seafile-caddy
ports:
- 80:80
- 5200:5200(这里修改为你的端口)
environment:
- CADDY_INGRESS_NETWORKS=seafile-net
...
2.如果要使用自己的证书,不使用 caddy 自动申请的 Let’s Encrypt 证书,则需要修改seafile-server.yml,否则不用修改。
services:
...
seafile:
image: ${SEAFILE_IMAGE:-seafileltd/seafile-pro-mc:12.0-latest}
...
labels:
#caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
caddy.reverse_proxy: "{{upstreams 80}}"
caddy: ${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty} # leave this variables only
#caddy: seafile.xxx.org:5200 # leave this variables only
caddy.tls: "/data/caddy/certs/cert.pem /data/caddy/certs/key.pem"
...
3.修改 env 文件。
...
## Scheme
SEAFILE_SERVER_HOSTNAME=你的域名:你的非标准端口
SEAFILE_SERVER_PROTOCOL=https
...
4.如果使用了 onlyoffice,修改 onlyoffice.yml,解决双端口问题,否则不用修改。
---
services:
...
onlyoffice:
image: ${ONLYOFFICE_IMAGE:-onlyoffice/documentserver:8.1.0.1}
restart: unless-stopped
...
labels:
#caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}:${ONLYOFFICE_PORT:-6233}
caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://你的域名:${ONLYOFFICE_PORT:-6233}
caddy.reverse_proxy: "{{upstreams}}"
...
fhway
2026 年6 月 5 日 14:38
3
你这是跨域问题,修改 seahub_settings.py 添加 就可以了
CSRF_TRUSTED_ORIGINS = [“https://seafile.yourdomain.com ”]