通过docker部署的seafile 13.0 CE版本不能同时域名和内外IP访问吗?

在.env和seafile-sever.yml中指定SEAFILE_SERVER_HOSTNAME为域名时,不能通过内网IP访问,

即便在seafile-sever.yml的labels中加入域名,内网IP的方式

caddy: ${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}, http://192.168.36.100:8000

同时在.env中加入

ALLOWED_HOSTS=我的域名,192.168.36.0/24,10.0.0.0/8,172.16.0.0/12

重新部署也不能通过IP+端口形式访问,可能是seahub_settings.py中没有IP访问的类别,浏览器会变成全白。

这个是不支持的。

我用的12CE,容器部署的时候没有用caddy。用seafile内置的nginx。

修改了一下这个文件: seafile-data\nginx\conf\seafile.nginx.conf

-- mode: nginx --

Auto generated at 08/04/2025 11:44:06

server {
listen 80;
server_name WWW.AAA.COM:60000;
server_name WWW.BBB.com:60000;
server_name 192.168.0.100:60000;

就可以外部域名,内部IP访问了。

80是容器内部端口,60000是映射到宿主机的端口。

就是放弃caddy呗,13这么干好像得改不少东西,关键我外面还套了一层nginx proxy manager,虚拟机飞牛OS,里面装docker版的seafile就搞不起来

  1. 进入到容器caddy内部
    [root@example ~]# docker exec -it seafile-caddy /bin/sh

查看本容器IP
注:每次重启容器,内部IP可能会变化。可在外部配置文件固定容器的IP
/ # ip a

  1. 修改caddy的配置文件
    增加容器IP及127.0.0.1及宿主机IP或其它IP。
    增加证书使用本地签署(此为解决caddy无法连接外网生成正式证书,实际可不用)。

/ # vi /config/caddy/Caddyfile.autosave

netdisk2.example.com.cn, netdisk.example.com.cn {
reverse_proxy 172.22.0.5:80
}

172.22.0.4, 127.0.0.1, 10.137.20.3 {
tls internal
reverse_proxy 172.22.0.5:80
}

  1. 重启caddy加载证书
    注:这种方式,每次重启docker,都需进入容器重启服务

/ # caddy reload --config /config/caddy/Caddyfile.autosave