SuperAPI AI 工具集

caddy

部署与运维

查看项目

更新于 10-16 04:20

技能介绍

Caddy — 本地应用的泛域名反向代理

用途 该技能用于将 *.YOUR_DOMAIN 形式的子域名通过 Caddy 反向代理路由到本地服务,并自动使用 Let's Encrypt 证书提供 HTTPS。它专为仅通过 Tailscale 访问的场景设计,不进行公网暴露。

DNS 提供商说明 本技能使用 Vercel DNS 完成 DNS-01 ACME 挑战。如果使用其他 DNS 提供商,需要将 caddy-dns/vercel 插件和 TLS 片段替换为该提供商对应的等价方案(参见 caddy-dns)。

添加新应用

  1. 创建后台服务(macOS 使用 LaunchAgent,Linux 使用 systemd),模板见 reference.md。
  2. 在 Caddyfile(~/.config/caddy/Caddyfile)中添加:

appname.YOUR_DOMAIN { import vercel_tls reverse_proxy localhost:31XX }

  1. 同时在顶部仪表盘 HTML 块中添加一个 <li> 条目。
  2. 重载 Caddy:

~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019

TLS 证书签发需要 30–60 秒(DNS-01 挑战)。

如果连接到 OpenClaw Gateway,请参阅本文件夹中的 OPENCLAW.md 获取网关专用配置。

快速开发服务器 配套技能:dev-serve — 一条命令启动开发服务器并完成 Caddy 路由。

dev-serve up ~/projects/myapp # → https://myapp.YOUR_DOMAIN dev-serve down myapp dev-serve ls

重载 / 重启

重载配置(无需重启,无需 sudo)

~/.local/bin/caddy reload --config ~/.config/caddy/Caddyfile --address localhost:2019

完全重启

macOS:

sudo launchctl unload /Library/LaunchDaemons/com.caddyserver.caddy.plist sudo launchctl load /Library/LaunchDaemons/com.caddyserver.caddy.plist

Linux:

systemctl --user restart caddy

故障排查

  • 证书未签发:tail -50 /var/log/caddy-error.log | grep -i error — 可能是 Vercel API 令牌过期。
  • DNS 未解析:dig +short appname.YOUR_DOMAIN — 应返回你的 Tailscale IP。
  • TLS 错误(curl 退出码 35):证书尚未签发完成,等待 30–60 秒。

完整参考(示例应用、关键文件、构建说明)见 reference.md。 OpenClaw 网关集成见 OPENCLAW.md。

适用场景 适用于需要为本地运行的多个应用提供 HTTPS 访问、且仅通过 Tailscale 内网访问的开发与自托管场景。

限制

  • 默认依赖 Vercel DNS 进行 DNS-01 挑战,更换 DNS 提供商需自行替换插件与 TLS 片段。
  • 证书签发存在 30–60 秒等待时间。
  • 面向 Tailscale-only 访问,不用于公网暴露。
  • 其他未在资料中说明的功能、收费、价格、平台或效果暂未提供。