方案C:分发层容器化(edge nginx)+ Hy2 + DNS-01 续期
deploy-pangolin / deploy (push) Has been cancelled

- edge: 容器化 nginx 接管 80/443,逐字移植现网 vhost(blog/jiu/marzban/pay)+ stream SNI 分流
- singbox: Hysteria2(host 网络,UDP 443)
- certbot: DNS-01(Cloudflare)续期,容器化
- xray: REALITY 仅 profile newnode(本台沿用 Marzban)
- deploy.sh 幂等且切换感知;cutover.sh 一次性停宿主 nginx 切容器(可秒级回滚)
- 弃用方案A 的 host nginx-apply/sudoers/root-setup
- 部署目录改 ~/pangolin(免 root);CI 注入 CF_API_TOKEN

EC2 实测:edge nginx -t 通过(真实证书)、compose 校验通过

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-05-30 16:42:30 +08:00
parent bc77e85b7d
commit 1a346c32c1
20 changed files with 430 additions and 277 deletions
+5 -5
View File
@@ -1,8 +1,8 @@
# 可选环境变量(deploy.sh / print-clients.sh 读取)
# 真正的密钥由 gen-secrets.sh 自动生成到 deploy/secrets/pangolin.env,无需手填。
# 可选环境变量。真正的密钥由 gen-secrets.sh 自动生成到 deploy/secrets/
# Cloudflare API Token(证书 DNS-01 续期用);CI 由 Gitea Secret 注入,
# 手动部署时本机 ~/.env 已有 CF_API_TOKEN。
# CF_API_TOKEN=xxxx
# 覆盖客户端导入串里的服务器地址(默认自动取 EC2 公网 IP)
# PANGOLIN_PUBLIC_IP=18.136.60.128
# root-setup.sh 授权的部署用户(默认 ec2-user)
# PANGOLIN_DEPLOY_USER=ec2-user