
serfriz/caddy-duckdns]([] 。-v /path/to/Caddyfile:/etc/caddy/Caddyfile:绑定挂载自定义 Caddyfile 配置文件。-v caddy_data:/data:持久化存储证书、日志等数据(推荐使用卷而非绑定挂载)。-v caddy_config:/config:存储 Caddy 运行时配置。-e DUCKDNS_TOKEN:DuckDNS 令牌(必填,用于 DNS-01 验证,从 DuckDNS 控制台获取)。创建 docker-compose.yml 文件:
yamlversion: "3.8" services: caddy: image: serfriz/caddy-duckdns:latest container_name: caddy-duckdns restart: unless-stopped ports: - "80:80" # HTTP 端口(可根据需求调整) - "443:443" # HTTPS 端口(可根据需求调整) volumes: - ./Caddyfile:/etc/caddy/Caddyfile # 绑定自定义 Caddyfile - caddy_data:/data # 持久化证书和数据 - caddy_config:/config # 持久化运行时配置 environment: - DUCKDNS_TOKEN=your_duckdns_token # 替换为实际的 DuckDNS 令牌 volumes: caddy_data: caddy_config:
启动服务:
bashdocker-compose up -d
以下为集成 DuckDNS 模块的 Caddyfile 配置示例,用于为 DuckDNS 域名自动申请 SSL 证书:
caddyfile# 替换为你的 DuckDNS 域名(如 example.duckdns.org) example.duckdns.org { reverse_proxy 192.168.1.100:8080 # 反向代理到后端服务(根据实际情况调整) # 配置 TLS 证书,使用 DuckDNS 模块进行 DNS-01 验证 tls { dns duckdns { token {$DUCKDNS_TOKEN} # 引用环境变量中的 DuckDNS 令牌 } } }
说明:
{$DUCKDNS_TOKEN}:从环境变量读取 DuckDNS 令牌,需确保容器启动时通过 -e DUCKDNS_TOKEN=xxx 传入。dns duckdns:指定使用 DuckDNS 模块进行 DNS-01 挑战验证。| 环境变量名 | 作用 | 必要性 | 示例值 |
|---|---|---|---|
DUCKDNS_TOKEN | DuckDNS 账户 API 令牌 | 必需 | abc123def456ghi789jkl012mno |
/data 和 /config 目录,避免容器重建导致证书和配置丢失。本镜像的构建脚本及相关代码基于 GPL-3.0 许可证 开源,确保用户可自由使用、修改和分发,同时要求源代码保持公开可访问。


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