
lflare/caddy本镜像为通过xcaddy工具构建的Caddy Web服务器镜像,基于Caddy v2.4.6版本,集成了多个实用插件,提供比标准Caddy更丰富的功能支持。
github.com/vrongmeal/caddygit:支持通过Git仓库自动拉取和部署网站内容。github.com/caddy-dns/cloudflare:提供Cloudflare DNS解析支持,用于自动HTTPS证书申请(DNS-01验证)。github.com/porech/caddy-maxmind-geolocation:集成MaxMind地理位置数据库,可获取访问者的地理位置信息。github.com/kirsch33/realip:修复经过代理/CDN后的客户端真实IP地址。github.com/WingLim/caddy-webhook:支持Webhook触发操作,如配置重载、服务重启等。github.com/techknowlogick/caddy-s3browser:提供S3兼容对象存储的Web浏览界面。github.com/lindenlab/caddy-s3-proxy:将S3兼容对象存储内容代理为Web可访问资源。通过以下命令启动容器,默认使用Caddyfile配置(需挂载自定义配置文件):
bashdocker run -d \ -p 80:80 \ -p 443:443 \ -v /path/to/Caddyfile:/etc/caddy/Caddyfile \ -v caddy_data:/data \ -v caddy_config:/config \ --name caddy-extended \ [镜像名称]
注:
/path/to/Caddyfile需替换为本地Caddyfile路径,[镜像名称]为实际镜像标签。
以下为集成插件的Caddyfile配置片段示例:
caddyfileexample.com { root * /srv git { repo [***] branch main pull_interval 3600s } file_server }
caddyfileexample.com { tls { dns cloudflare {env.CLOUDFLARE_API_TOKEN} } reverse_proxy localhost:8080 }
需通过环境变量
CLOUDFLARE_API_TOKEN传入Cloudflare API令牌。
caddyfileexample.com { geolocation { db_path /etc/caddy/GeoLite2-City.mmdb } respond "Your location: {geolocation.city}, {geolocation.country_name}" }
需挂载MaxMind数据库文件至
/etc/caddy/GeoLite2-City.mmdb。
caddyfiles3.example.com { s*** { aws_region us-east-1 bucket my-bucket endpoint [***] access_key {env.AWS_ACCESS_KEY} secret_key {env.AWS_SECRET_KEY} } s3browser /browse { bucket my-bucket endpoint [***] } }
CLOUDFLARE_API_TOKEN(Cloudflare DNS)、AWS_ACCESS_KEY/AWS_SECRET_KEY(S3相关)等。/etc/caddy/Caddyfile:Caddy配置文件,需持久化挂载。/data:Caddy数据目录(含证书、缓存等),建议持久化。/config:Caddy配置存储目录,建议持久化。--user指定非root用户运行。

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