I’m looking into setting up https for my local services. Everything is currently set up using the official caddy docker image.
I want to use now connect caddy to cloudflare to resolve the DNS 01. It looks like this is possible with a drop in replacement for caddy from either https://github.com/CaddyBuilds/caddy-cloudflare or https://github.com/serfriz/caddy-custom-builds
Is anyone here using these builds? Are they reliable? Is there an alternative I havent considered?
You could just build it yourself, there’s not much to it.
Dockerfile:
ARG VERSION=2 FROM caddy:${VERSION}-builder AS builder RUN xcaddy build \ --with github.com/caddy-dns/cloudflare FROM caddy:${VERSION} COPY --from=builder /usr/bin/caddy /usr/bin/caddyMy Dockerfile is under dockerfile-dns and then in docker-compose.yaml instead of pointing to an image I have:
services: caddy: build: ./dockerfile-dnsI’m not 100% sure of the right way to update it, but I think I usually use something like
docker compose build --pull --no-cache.This is basically the dockerfile these projects provide, so I guess I could do this myself. How do you keep the caddy container up to date? I have tugtainer (something like watchtower) update caddy automatically, but I guess this set up would break that
I can’t help you with automation. I update my containers manually, whenever I think to do it. Nothing is accessible outside my network so I’m not worried about staying on top of security updates.
I have a Dockerifle like that:
ARG CADDY_VERSION=2.11.3 FROM caddy:${CADDY_VERSION}-builder-alpine AS builder RUN xcaddy build \ --with github.com/caddy-dns/cloudflare FROM caddy:${CADDY_VERSION}-alpine COPY --from=builder /usr/bin/caddy /usr/bin/caddyand the docker-compose.yml file I use:
services: caddy: pull_policy: build build: context: .And to build new versions I modify the Dockerfile after doing a docker compose down, and then to build the new version I use docker compose up.
I currently build my own Caddy docker container with a Dockerfile using xcaddy and the caddy-builder-alpine image.
xcaddy adds these github.com/caddy-dns/cloudflare github.com/lucaslorentz/caddy-docker-proxy/v2
That seems like a good option. How do you keep it updated?
I have a Dockerifle:
ARG CADDY_VERSION=2.11.3 FROM caddy:${CADDY_VERSION}-builder-alpine AS builder RUN xcaddy build \ --with github.com/caddy-dns/cloudflare FROM caddy:${CADDY_VERSION}-alpine COPY --from=builder /usr/bin/caddy /usr/bin/caddyand the docker-compose.yml file I have this snippet at the top, of course this isn’t the full file as there are specifics to my usecase in my full yml:
services: caddy: pull_policy: build build: context: .And to build new versions I modify the Dockerfile after doing a docker compose down, and then to build the new version I use docker compose up.``
Though this is outdated for my current setup, as I also use github.com/lucaslorentz/caddy-docker-proxy by adding “–with github.com/lucaslorentz/caddy-docker-proxy/v2” below where I added the Cloudflare repo.
This is so I can use Docker Labels to to automate entries.

