A custom Caddy image built specifically for my homelab.
The official Caddy image only includes the standard modules. Since my homelab relies on additional modules such as Docker service discovery and Cloudflare DNS challenge, this repository builds a custom Caddy binary using xcaddy and publishes it as a Docker image.
Although this image is primarily maintained for my own environment, anyone is welcome to use it.
Warning
This project is maintained for personal use. While it is publicly available, no compatibility or stability guarantees are provided. Use it at your own risk.
The image currently includes the following modules:
| Module | Description |
|---|---|
| caddy-docker-proxy | Automatic service discovery via Docker labels |
| caddy-dns/cloudflare | Cloudflare DNS challenge for ACME TLS certificates |
| souin | HTTP cache layer |
| caddy-l4 | Layer 4 (TCP/UDP) proxy |
| caddy-cloudflare-ip | Cloudflare IP ranges as a trusted proxy IP source |
More modules may be added in future releases as my homelab evolves.
Pull the latest image:
docker pull ghcr.io/vongola12324/homelab-caddy-image:latestUse a specific Caddy release:
docker pull ghcr.io/vongola12324/homelab-caddy-image:2.11Pin to a specific Caddy version:
docker pull ghcr.io/vongola12324/homelab-caddy-image:2.11.4Pin to an immutable build:
docker pull ghcr.io/vongola12324/homelab-caddy-image:2.11.4-r3Available tag types:
| Tag | Description |
|---|---|
latest |
Latest published image |
2 |
Latest Caddy 2.x release |
2.11 |
Latest Caddy 2.11.x release |
2.11.4 |
Latest rebuild based on Caddy 2.11.4 |
2.11.4-r3 |
Immutable image for the third rebuild of Caddy 2.11.4 |
Images are automatically rebuilt and published when one of the following occurs:
- A new upstream Caddy release becomes available.
- The build configuration changes.
- The module list changes.
- A scheduled rebuild is triggered to keep bundled modules up to date.
Since Caddy modules are released independently of Caddy itself, scheduled rebuilds ensure the latest compatible module versions are included without requiring a new Caddy release.
This repository follows a Caddy-first versioning strategy.
Every image is tagged using the upstream Caddy version, followed by an optional rebuild revision.
For example:
2.11.4-r1
2.11.4-r2
2.11.4-r3
2.12.0-r1
Revision (-rN) increments indicate rebuilds of the same upstream Caddy version, typically due to:
- Module updates
- Build pipeline improvements
- Dependency updates
- Security fixes
In addition to immutable revision tags, mutable convenience tags are also published:
latest
2
2.11
2.11.4
For reproducible deployments, it is recommended to pin images using immutable revision tags (2.11.4-r3) or, for the highest level of reproducibility, the image digest (@sha256:...). Mutable tags such as latest or 2.11.4 may be updated to point to newer builds over time.
The Dockerfile, build scripts, GitHub Actions workflows, and other files in this repository are licensed under the MIT License.
Please note that software bundled into the resulting image (such as Caddy and its modules) remains subject to their respective licenses.
See the LICENSE file for details.