# 公网入口模板:只暴露 webhook 与 OAuth 回调,任务/项目/管理 API 不对外。 # 使用前把 换成你自己的域名,把 换成 Let's Encrypt 联系邮箱。 # 部署侧在主机上装 Caddy 后,把本文件放到 /etc/caddy/Caddyfile 并 reload。 # 控制面本身仍只监听 127.0.0.1:8765,不直接对外;Caddy 只做反向代理 + TLS。 # GitHub webhook 与 OAuth 回调都要求 https 且证书有效,Caddy 的自动证书满足这一点; # 自签名证书不行,GitHub 会拒绝送达,浏览器也会拦截 OAuth 回调。 { encode gzip tls # GitHub webhook:签名校验在控制面做(GITHUB_WEBHOOK_SECRET),Caddy 只转发。 @github path /webhooks/github reverse_proxy @github 127.0.0.1:8765 # Slack webhook(目前只有解析,未接执行;先留着入口,执行接通后再用)。 @slack path /webhooks/slack reverse_proxy @slack 127.0.0.1:8765 # OAuth 浏览器登录/回调:回调 URL 必须与 OAuth App 里填的完全一致, # 即 https:///oauth//callback。 @oauth path /oauth/* reverse_proxy @oauth 127.0.0.1:8765 # 其余一切(/tasks、/projects、/admin/*、/metrics 等)一律不对公网开放。 respond "forbidden" 403 }