Sushi Kitchen
Dragon
Dragon

Caddy

dragon.caddy

A Docker Compose file for Caddy alone, generated from the catalog and checked by the safety inspector. No account needed.

Web server and reverse proxy that obtains and renews TLS certificates automatically, supports HTTP/3, and is configured either by a short text file or entirely over an API.

Caddy provisions and renews certificates on its own, solving the ACME challenge and reloading without downtime, which removes the separate certificate tooling most proxy deployments accumulate. A Caddyfile expresses a working HTTPS reverse proxy in a couple of lines, while the underlying JSON configuration is available over an administration API for programmatic control, and configuration changes apply with a graceful reload rather than a restart. Static file serving, compression, request matching, header manipulation, rate limiting and load balancing are built in, and further behaviour comes from modules compiled into a custom build. Internally issued certificates cover services that are never publicly reachable.

You know it worked when

  • The server starts and the configuration validates without errors.
  • A proxied backend answers through the proxy.
  • A certificate is issued and the site loads over HTTPS without a browser warning.
  • A configuration reload applies without dropping in-flight connections.
  • Certificates persist across a container restart rather than being reissued.

Known sharp edges

  • Automatic public certificates require the domain to resolve to the server and ports 80 and 443 to be reachable, and a failed challenge retries against rate limits that lock out further attempts for a period.
  • Certificates, keys and issuance state live in the data directory, and a non-persistent volume makes every restart request new certificates until the rate limit is hit.
  • The administration API listens without authentication on the loopback interface, so exposing it beyond the container hands over the whole configuration.
  • Third-party modules require a custom build rather than runtime loading, so a needed plugin means replacing the image rather than editing configuration.
reverse-proxyweb-servertls