The base Caddy Docker image is intentionally lean—around 50MB—to avoid bundling unnecessary components. However, if you need extra functionality, such as automatic SSL certificate issuance using the ACME DNS challenge via Cloudflare and Let’s Encrypt (as I did), you’ll need an image that includes the required plug-in. You have two options: use a community-maintained prebuilt image (the easy way), or build your own (the hard way). Here, we’re going with the hard way.
Posts for: #Docker
Using Caddy with Tailscale and Docker
Here’s the setup.
- You have one or more services running in Docker containers.
- The devices that need to access those services are part of a Tailscale network (Tailnet).
- You own a public domain name (e.g., your-domain.com)
- You want/need to serve those services via HTTPS
- You don’t want to open any ports or other holes in your firewall.
- You don’t want to mess with self-signed certificates or create your own private certificate authority.
If this is your situation, this post might help.