Caddy
A modern web server with automatic HTTPS.
Caddy is a web server written in Go that obtains and renews TLS certificates from Let's Encrypt automatically by default. A Caddyfile configuration is much shorter than the equivalent NGINX or Apache config for common workloads — a single line "example.com { reverse_proxy localhost:8080 }" produces a fully-functional HTTPS reverse proxy with auto-renewing certificates.
Caddy can serve static files, terminate TLS for arbitrary backends, run as a Caddy module hosting custom Go plugins, or front a Wordpress / static-site / app server. Internally the configuration is a JSON document; the Caddyfile is a friendlier syntax that compiles to JSON. The HTTP/3 (QUIC) implementation in Caddy was one of the first publicly-available production- quality QUIC servers.
Matt Holt created Caddy in 2014. The project is dual-licensed under Apache-2.0 with a commercial relationship through Caddy Web Services. Caddy is widely used as a "friendly TLS reverse proxy" in front of self-hosted services (Bitwarden, Vaultwarden, Jellyfin, Nextcloud, etc.) and increasingly as a primary web server for new deployments.
Install
Debian/Ubuntu: sudo apt install caddy # via Caddy's APT repo Fedora/RHEL: sudo dnf install caddy Arch: sudo pacman -S caddy macOS: brew install caddy
Authors
- Matt Holt (creator)
- Caddy contributors