Caddy Web 管理面板 — 反代/证书/动态DNS/访问控制/域名监控/通知/网络唤醒
4.7K
一个面向个人服务器、家庭网关和轻量反代节点的中文 Caddy Web 管理面板。
Caddy UI 把定制版 Caddy、React 前端控制台和 Go 后端 API 打包到同一个容器中,用可视化方式管理反向代理、证书、动态 DNS、访问控制、通信规则、域名监控、推送通知和网络唤醒。
它更适合这类场景:
| 场景 | 你可以用它做什么 |
|---|---|
| 家庭服务器 | 管理 NAS、媒体服务、内网 Web 服务的公网入口 |
| 轻量反代网关 | 统一配置 HTTPS、证书、转发、访问控制和审计日志 |
| 动态公网 IP | 自动维护 DNS 记录,配合域名监控发现解析异常 |
| 免费域名托管 | 管理 DigitalPlat / DNSHE 域名提醒、续期和通知 |
| 局域网设备 | 保存设备 MAC 地址,一键发送 Wake-on-LAN 唤醒包 |
Important
管理面板当前没有内置登录鉴权。生产环境请只允许内网/VPN 访问,或放在可信认证网关后面;不要把 Caddy Admin API `2019` 暴露到公网。
| 模块 | 能力 |
|---|---|
| 站点管理 | 反向代理、重定向、404 站点、TCP/UDP Streams、多监听端口、审计日志 |
| 证书管理 | Caddy 自动 HTTPS、HTTP-01、DNS-01、自定义证书、Caddy Internal、自定义 ACME |
| DNS-01 | 阿里云 DNS、Cloudflare、DNSPod,支持 DNSPod 委派 Zone |
| 动态 DNS | 基于 Caddy Dynamic DNS 插件生成配置,自动同步域名解析 |
| 访问控制 | Basic Auth 访问列表、IP allow/deny、Authelia / authentik forward_auth |
| 通信规则 | 独立管理 TCP/UDP 转发规则,并关联到代理服务 |
| 域名监控 | DNS、SSL 证书到期、签发机构、域名注册到期、非 443 SSL 目标 |
| 域名续期 | DNSHE 手动续期和自动续期,DigitalPlat 到期提醒 |
| 推送通知 | Webhook、Bark、Server酱、Gotify、Telegram、企业微信、钉钉、飞书 |
| 网络唤醒 | 保存唤醒设备,一键发送 Wake-on-LAN 魔术包 |
| 凭据复用 | DNS、ACME、域名商和推送凭据统一保存到 /config |
| 多架构镜像 | 支持 linux/amd64 和 linux/arm64 |
这是仓库内 docker-compose.yml 当前使用的模式,适合需要直接监听宿主机 80/443 和自定义端口的网关场景。
services:
caddy:
image: lc121a/caddy-ui:latest
container_name: caddy-ui
network_mode: host
environment:
- TZ=Asia/Shanghai
volumes:
- caddy_data:/data
- caddy_config:/config
restart: unless-stopped
volumes:
caddy_data:
caddy_config:
启动:
docker compose up -d
访问管理面板:
http://<服务器 IP>:8888/
如果你不想使用 Host 网络,可以显式发布端口。反代里配置了额外监听端口时,也要同步发布对应端口。
services:
caddy:
image: lc121a/caddy-ui:latest
container_name: caddy-ui
ports:
- "8888:8888" # 管理面板和 API
- "80:80" # HTTP 业务流量和 ACME HTTP-01
- "443:443" # HTTPS 业务流量
# - "11111:11111" # 自定义监听端口
environment:
- TZ=Asia/Shanghai
volumes:
- caddy_data:/data
- caddy_config:/config
restart: unless-stopped
volumes:
caddy_data:
caddy_config:
| 端口 | 用途 | 是否建议公网暴露 |
|---|---|---|
8888 | 管理面板和后端 API | 不建议,推荐仅内网/VPN 访问 |
80 | 业务 HTTP、ACME HTTP-01 验证 | 需要 HTTP-01 时必须公网可达 |
443 | 业务 HTTPS | 按业务需要 |
2019 | Caddy Admin API | 不建议公网暴露 |
| 自定义端口 | 反代多监听端口,例如 11111、8443 | 按业务需要 |
反代页面里的「监听端口」是 Caddy 容器内监听端口。例如填写:
443,11111
桥接网络模式下需要同步发布:
ports:
- "443:443"
- "11111:11111"
如果宿主机把 HTTPS 映射到非标准端口,例如 "8443:443",外部访问地址就是 https://example.com:8443/,容器内仍监听 443。HTTP-01 证书申请仍要求外部能访问映射到容器 80 的端口。
443,11111。证书列表会展示可读的签发机构和 CN,例如 Let's Encrypt(R12)、Google Trust Services(WE1),避免只看到 R12、YE2、WE1 这类中间 CA 名称。
github.com/mholt/caddy-dynamicdns 生成 Caddy 全局动态 DNS 配置。「域名监控」可以同时检查:
SSL 检查目标支持非标准端口:
example.com:8443
域名商 API 支持:
| 服务 | 支持域名 |
|---|---|
| DigitalPlat | .us.kg、.dpdns.org、.qzz.io、.xx.kg、.qd.je |
| DNSHE | .cc.cd、.ccwu.cc、.bbroot.com |
不支持 API 的免费/托管二级域名会标记为「不可用」,不会强行识别成错误的根域名。
推送渠道独立管理,支持:
| 类型 | 说明 |
|---|---|
| Webhook | 通用 HTTP 回调 |
| Bark | iOS Bark 推送 |
| Server酱 | 微信通知 |
| Gotify | 自建消息服务 |
| Telegram | Telegram Bot |
| 企业微信 | 群机器人 |
| 钉钉 | 群机器人 |
| 飞书 | 群机器人 |
每个渠道可以选择接收全部消息,也可以只订阅指定消息类型:
网络唤醒位于一级菜单,默认放在「访问控制」和「系统管理」之间。设备配置支持:
| 字段 | 是否必填 | 说明 |
|---|---|---|
| 设备名称 | 必填 | 列表展示名称 |
| MAC 地址 | 必填 | 目标设备网卡 MAC |
| 广播地址 | 选填 | 默认使用 255.255.255.255 |
| 端口 | 选填 | 默认使用 9 |
| SecureOn | 选填 | 部分网卡需要的 6 字节密码 |
| 主机名 | 选填 | 便于识别设备 |
| 备注 | 选填 | 记录用途或位置 |
| 启用状态 | 选填 | 禁用后不能发送唤醒包 |
/config。| 容器路径 | 内容 |
|---|---|
/data | Caddy 证书、私钥、ACME 账户、OCSP 缓存 |
/config | 站点配置、凭据、证书元数据、域名监控、推送渠道、网络唤醒、Caddy 日志 |
常见文件:
| 文件 | 说明 |
|---|---|
/config/sites/*.conf | Caddy 站点配置 |
/config/sites/*.json | UI 站点元数据 |
/config/credentials.json | DNS、DigitalPlat、DNSHE 等可复用凭据 |
/config/issuer-credentials.json | ACME 签发机构凭据 |
/config/domain-monitor.json | 域名监控配置和检查结果 |
/config/notification-channels.json | 推送渠道配置 |
/config/wake-devices.json | 网络唤醒设备配置 |
/config/caddy/caddy.log | Caddy 和后端 API 日志 |
| 变量 | 默认值 | 说明 |
|---|---|---|
TZ | Asia/Shanghai | 容器时区 |
DIGITALPLAT_API_BASE_URL | https://domain-api.digitalplat.org/api/v1 | 测试或私有代理场景可覆盖 |
DNSHE_API_BASE_URL | https://api005.dnshe.com/index.php?m=domain_hub | 测试或私有代理场景可覆盖 |
DigitalPlat / DNSHE API Key 不通过环境变量配置,请在界面的凭据管理中维护。
git clone https://github.com/jadylc/caddyUI.git
cd caddyUI
docker compose up -d --build
Dockerfile 分为四个阶段:
| 阶段 | 内容 |
|---|---|
ui-builder | 使用 Node 构建前端 |
caddy-builder | 使用 xcaddy 构建带 DNS 插件、L4、Dynamic DNS 的 Caddy |
api-builder | 使用 Go 构建后端 API 静态二进制 |
runtime | 合并到 Alpine 运行镜像 |
定制版 Caddy 当前包含:
github.com/caddy-dns/alidnsgithub.com/caddy-dns/cloudflaregithub.com/caddy-dns/dnspodgithub.com/caddy-dns/hegithub.com/mholt/caddy-l4github.com/mholt/caddy-dynamicdns后端:
cd backend
go test ./...
前端:
cd ui
npm ci
npm run build
2019 Caddy Admin API 暴露到公网。/config,请保护好该目录并定期备份。Content type
Image
Digest
sha256:a310c5e3a…
Size
25.1 MB
Last updated
6 days ago
docker pull lc121a/caddy-ui:1.0.9