
homeall/caddy-reverse-proxy-cloudflare本Docker镜像基于@lucaslorentz的Caddy-Docker-Proxy镜像构建,额外集成了Cloudflare DNS插件。这是与原镜像的唯一区别。
该镜像主要用于结合Caddy反向代理、Let's Encrypt证书服务和Cloudflare DNS进行DNS验证,特别适用于需要为通配符域名获取SSL证书的场景。此外,通过Caddy DynamicDNS可保持IP地址自动更新。
如需详细使用方法,建议参考原镜像的官方文档。
*.example.com)的SSL证书签发设计通过docker-compose.yml部署,使用标签(labels)定义Caddy配置。以下为基础示例:
yamlversion: "3.3" services: caddy: container_name: caddy image: homeall/caddy-reverse-proxy-cloudflare:latest restart: unless-stopped environment: TZ: 'Europe/London' # 时区设置 volumes: - "/var/run/docker.sock:/var/run/docker.sock" # 需挂载Docker套接字以监听容器事件 - "./caddy-data:/data" # 持久化存储证书等数据 ports: - "80:80" # HTTP端口 - "443:443" # HTTPS端口 labels: # 全局配置 caddy.*** *** # 用于ACME证书注册的*** whoami0: # 示例服务 container_name: whoiam image: jwilder/whoami:latest hostname: YourBigBoss # curl访问时的预期响应 hostname restart: unless-stopped labels: caddy: your.example.com # Caddy监听的域名 caddy.reverse_proxy: "{{upstreams 8000}}" # 反向代理至容器的8000端口 caddy.tls.protocols: "tls1.3" # 可选:TLS协议版本(默认tls1.2) # 测试环境使用Let's Encrypt staging CA(正式环境需删除此行) caddy.tls.ca: "[***]" caddy.tls.dns: "cloudflare $API-TOKEN" # 替换$API-TOKEN为实际Cloudflare API令牌
caddy.email:Let's Encrypt证书注册***(必填)caddy:指定Caddy监听的域名(如your.example.com)caddy.reverse_proxy:定义反向代理目标,{{upstreams 8000}}表示自动发现容器的8000端口caddy.tls.dns:Cloudflare DNS验证配置,需替换$API-TOKEN为实际Cloudflare API令牌部署后,可通过curl命令测试HTTPS是否正常工作:
bash# 测试证书信息(--insecure用于测试环境,正式环境可移除) curl --insecure -vvI [***] 2>&1 | awk 'BEGIN { cert=0 } /^\* Server certificate:/ { cert=1 } /^\*/ { if (cert) print }'
预期输出应包含证书信息,如:
* Server certificate: * subject: CN=your.example.com * start date: ... * expire date: ... * issuer: CN=Fake LE Intermediate X1 # 测试环境CA,正式环境为Let's Encrypt
访问服务内容:
bashcurl -k [***] # -k用于测试环境跳过证书验证
预期返回后端服务响应(如示例中的YourBigBoss主机名)。
通过Docker命令检查Caddy服务健康状态:
bashdocker inspect --format "{{json .State.Health }}" caddy | jq
健康状态输出示例:
json{ "Status": "healthy", "FailingStreak": 0, "Log": [ { "Start": "...", "End": "...", "ExitCode": 0, "Output": "" } ] }
本项目基于MIT许可证开源,详情参见LICENSE。
如有问题,建议在GitHub仓库提交issue。


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务