https://github.com/RobbsLuo/Coding2API/pull/27 求PR
Activity
RobbsLuo commentedon Nov 1, 2026
PR #27 已合并进
main(rebase 到最新main,只TECHNICAL.md一处冲突已解决;CI 四个 job 全绿)。「只有公网 IP、没有域名,能不能 https?」——能,但 Caddy 的自动申请(ACME)只认域名、不给裸 IP 签发,所以要二选一:
1)想拿到「浏览器直接认」的证书 → 借一个通配 DNS 名
sslip.io / nip.io 把 IP 编进主机名,自动解析回你的 IP:
这样走的就是常规 ACME,签出来的就是浏览器直接信任的证书。
注意:Let's Encrypt 按「注册域」限流(每 7 天 50 张),sslip.io / nip.io 是所有使用者共享的两个域名(2026-02 被打满过一次,之后各自申请过配额上调)——签不出来就换另一个域名。
2)只给 API 客户端用、不介意证书不被信任 → 自签
链路照样加密,但证书不在公共信任库里:浏览器会告警,
curl要-k,或者把根证书装进客户端信任:docker compose -f docker-compose.yml -f docker-compose.public.yml \ exec caddy cat /data/pki/authorities/local/root.crt两种模式都要满足的前提
ALLOWED_HOSTS留空即可 —— 覆盖文件会自动补上你的域名 / IP +127.0.0.1(漏掉回环会让容器 healthcheck 判 400,永远 unhealthy,Caddy 也就永远不启动)。!override)。启动:
docker compose -f docker-compose.yml -f docker-compose.public.yml up -d --build docker compose -f docker-compose.yml -f docker-compose.public.yml logs -f caddy curl -fsS https://你的域名或IP/health # 自签模式加 -kREADME 中英都新增了「只有公网 IP、没有域名」一节,
.env.example也补了TLS_MODE说明。本地已实测(公网 IP 站址 +
internal):no-SNI 的curl -k拿到 200、80 端口 308、/metrics404。