← Software

Caddy

A modern web server with automatic HTTPS.

Caddy logo

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.

License: Apache-2.0

Category: Networking

Website: https://caddyserver.com/

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
PreviousBun NextCeph

This site is currently in Beta. Contact: Chris Paton

Textbook of AI · Textbook of Usability · Textbook of Digital Health

Auckland Maths and Science Tutoring