Nextcloud aio 非标准端口 非443端口安装

[复制链接]
发表于 2026-8-16 19:07:18 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
Nextcloud aio 非标准端口 非443端口安装

第一步:创建并编辑compose.yml

创建一个【compose.yml】文件在当前目录。下面的test.com要改成自己的域名。这里我是映射到了38001端口,有需要可以自己改。
  1. services:
  2.   nextcloud-aio-mastercontainer:
  3.     image: ghcr.io/nextcloud-releases/all-in-one:latest
  4.     init: true
  5.     restart: always
  6.     container_name: nextcloud-aio-mastercontainer # 不可以改
  7.     volumes:
  8.       - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
  9.       - /var/run/docker.sock:/var/run/docker.sock:ro
  10.     networks:
  11.       - nextcloud-aio
  12.     ports:
  13.       - "0.0.0.0:8080:8080"
  14.       - "[::]:8080:8080"
  15.     environment:
  16.       APACHE_PORT: 11000
  17.       APACHE_IP_BINDING: "0.0.0.0"
  18.       SKIP_DOMAIN_VALIDATION: true
  19.       NEXTCLOUD_MEMORY_LIMIT: 4096M
  20.       NEXTCLOUD_UPLOAD_MAX_FILESIZE: 25G
  21.       NEXTCLOUD_POST_MAX_SIZE: 25G
  22.       NEXTCLOUD_MOUNT: /mnt/storage # 改成你自己的外部存储
  23.       APACHE_MEMORY_LIMIT: 4096M
  24.       NC_DOMAIN: test.com:38001 # 改成你自己的域名
  25.       OVERWRITEHOS: test.com:38001# 改成你自己的域名
  26.       OVERWRITEPROTOCOL: https
  27.   caiddy:
  28.     build:
  29.       context: .
  30.       dockerfile: Caddy.Dockerfile
  31.     restart: unless-stopped
  32.     volumes:
  33.       - type: bind
  34.         source: ./Caddyfile
  35.         target: /etc/caddy/Caddyfile
  36.       - type: bind
  37.         source: ./fullchain.cer #挂载你自己的证书和key
  38.         target: /certs/fullchain.cer #挂载你自己的证书和key
  39.       - type: bind
  40.         source: ./test.com.key #挂载你自己的证书和key
  41.         target: /certs/test.com.key #挂载你自己的证书和key
  42.       - type: volume
  43.         source: caddy_data
  44.         target: /data
  45.       - type: volume
  46.         source: caddy_config
  47.         target: /config
  48.     networks:
  49.       - nextcloud-aio
  50.     ports:
  51.       - "0.0.0.0:38000:38000"
  52.       - "[::]:38000:38000"
  53.       - "0.0.0.0:38001:38001"
  54.       - "[::]:38001:38001"
  55. volumes:
  56.   nextcloud_aio_mastercontainer:
  57.     name: nextcloud_aio_mastercontainer # 不可以改
  58.   caddy_certs:
  59.   caddy_config:
  60.   caddy_data:
  61. networks:
  62.   nextcloud-aio:
  63.     name: nextcloud-aio
  64.     driver: bridge
  65.     enable_ipv6: false
  66.     driver_opts:
  67.       com.docker.network.driver.mtu: "1280" # Can be set to 9001 for jumbo frames
  68.       com.docker.network.bridge.host_binding_ipv4: "127.0.0.1" # Security hardening
  69.       com.docker.network.bridge.enable_icc: "true"
  70.       com.docker.network.bridge.default_bridge: "false"
  71.       com.docker.network.bridge.enable_ip_masquerade: "true"
复制代码
第二步:创建并编辑Caddyfile

创建一个【Caddyfile】文件在当前目录。下面的test.com要改成自己的域名。
  1. {
  2.     layer4 {
  3.         127.0.0.1:3478 {
  4.             route {
  5.                 proxy {
  6.                     upstream nextcloud-aio-talk:3478
  7.                 }
  8.             }
  9.         }
  10.         127.0.0.1:3479 {
  11.             route {
  12.                 proxy {
  13.                     upstream nextcloud-aio-talk:3479
  14.                 }
  15.             }
  16.         }
  17.     }
  18. }
  19. https://test.com:38001 {
  20.     tls /certs/fullchain.cer /certs/test.com.key
  21.     reverse_proxy nextcloud-aio-apache:11000 {
  22.         header_up X-Forwarded-Proto "https"
  23.         header_up Host {host}
  24.     }
  25. }
  26. http://test.com:38000 {
  27.     reverse_proxy nextcloud-aio-apache:11000 {
  28.         header_up X-Forwarded-Proto "http"
  29.         header_up Host {host}
  30.     }
  31. }
复制代码
第三步:创建并编辑Caddy.Dockerfile

创建一个【caddy.Dockerfile】文件在当前目录
  1. FROM caddy:2.9.1-builder-alpine AS builder
  2. RUN xcaddy build --with github.com/mholt/caddy-l4@87e3e5e2c7f986b34c0df373a5799670d7b8ca03
  3. FROM caddy:2.9.1-alpine
  4. COPY --from=builder /usr/bin/caddy /usr/bin/caddy
复制代码
第四步:运行

1、运行docker compose
  1. docker compose up -d
复制代码
2、访问8080端口,https://192.168.0.2:8080/完成初始化,初始化的时候会要求填域名,域名一定要填带端口的,比如test.com:38001,否则只能重装。
常见问题解决方案

问题1:没有外网域名怎么办?

答:上https://dynv6.com/免费申请一个,非常快。
问题2:没有证书怎么办?

答:申请一个证书。拿到dynv6域名之后,登录dynv6的页面,拿到token,再回到服务器输入以下命令:
  1. curl https://get.acme.sh | sh -s email=你的[email protected]
  2. export DYNV6_TOKEN="你的Token"
  3. acme.sh --issue --dns dns_dynv6 -d 你的域名.dynv6.net
复制代码
问题3:初始化下载页面非常慢,怎么办

答:因为镜像都在国外,所以下载非常慢,自己挂个代理即可。
问题4:没有公网IPV4地址怎么办?

答:如今的运营商一般都会有IPv6地址,申请到域名之后再在服务器上面配置DDNS动态解析即可。如果需要IPv4访问则试下花生壳或者FRP。
参考

[1] [知乎]: https://zhuanlan.zhihu.com/p/2027174873110253955
[2] [github]:
https://github.com/nextcloud/all-in-one/discussions/5439
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表