Automatically builds and publishes multi‑architecture Docker images for Caddy with the caddy-dns/cloudflare module pre‑installed.
- ECH‑ready – Caddy 2.10 introduces Encrypted ClientHello, but it requires a DNS provider module to publish the necessary records. This image is already compiled with the Cloudflare DNS provider, so you can enable ECH right away.
- Cloudflare DNS provider built-in – use
tls.dns.cloudflare, ACME DNS challenges, or ECH without rebuilding Caddy. - Multi‑arch – runs on
linux/amd64andlinux/arm64. - Automatic rebuilds – whenever upstream
caddy:latestchanges. - Available from Docker Hub (
lewimbes/caddy-cloudflare) and GHCR (ghcr.io/lewimbes/caddy-cloudflare).
# Pull the latest image
docker pull lewimbes/caddy-cloudflare:latest
# Or pin a specific version
docker pull lewimbes/caddy-cloudflare:2.10.0
docker pull lewimbes/caddy-cloudflare:2.10
docker pull lewimbes/caddy-cloudflare:2docker buildx build \
--platform linux/amd64,linux/arm64 \
-t lewimbes/caddy-cloudflare:latest .A single GitHub Actions workflow keeps the image fresh:
-
Triggers
- Any push to the
mainbranch - A daily scheduled run that checks whether
caddy:latesthas changed upstream
- Any push to the
-
If an update is needed, the job:
- builds Caddy with the Cloudflare DNS module for linux/amd64 and linux/arm64,
- tags the result (latest, full semver, major‑minor, major),
- pushes to Docker Hub and GHCR.
See auto-build-on-change.yml for full details.
This repository is licensed under the Apache License 2.0.
Caddy, Caddy-Docker and the Cloudflare DNS provider are upstream Apache‑2.0 projects.
- Upstream project – https://caddyserver.com
- Official Docker image – https://hub.docker.com/_/caddy