Caddy

The batteries-included modern web server (Go): HTTP/1-3, and the killer default — automatic HTTPS (ACME issuance + renewal built in, no certbot). Caddyfile ergonomics vs nginx ceremony; admin API for dynamic config; Go plugin ecosystem via xcaddy custom builds — which is exactly how Uncloud extends it (cluster-shared cert storage module caddy.storage.uncloud, pre-built image or xcaddy --with; stock Caddy runs fine but each instance then issues certs independently — see Reverse proxies > Uncloud and standard Caddy).

Details and stats: caddy (OSS) · parent: Reverse proxies · kin: nginx, Traefik · storage module: caddy-uncloud (OSS)

Uncloud storage module: now in the official Caddy docs (2026-10-07)

psviderski (2-tweet; tweet + docs page captured): clustered Caddy storage is in the official Caddy docs — the module registry listing caddy.storage.uncloud (community module, xcaddy/--with or the pre-built ghcr.io/unlabs-dev/caddy-uncloud image). His framing: “one of the easiest ways to set up multi-host ingress on your servers” — uc machine init/add builds the WireGuard overlay, uc caddy deploy puts a cluster-aware Caddy on each node, and uc scale myapp 3 spreads compose services across servers while certs/TLS state stay cluster-shared (each stock-Caddy instance otherwise issuing its own certs is exactly the problem the module kills). This closes the loop on the CRDTs lane: distributed KV over WireGuard as a Caddy storage plugin, now with an official-docs stamp.