extensible HTTP/1-2-3 web server
Caddy is most often used as an HTTPS server, but it is suitable for any
long-running Go program. First and foremost, it is a platform to run Go
applications. Caddy "apps" are just Go programs that are implemented as Caddy
modules. Two apps -- tls and http -- ship standard with Caddy.

Caddy apps instantly benefit from automated documentation, graceful on-line
config changes via API, and unification with other Caddy apps.

Although JSON is Caddy's native config language, Caddy can accept input from
config adapters which can essentially convert any config format of your choice
into JSON: Caddyfile, JSON 5, YAML, TOML, NGINX config, and more.

The primary way to configure Caddy is through its API, but if you prefer config
files, the command-line interface supports those too.

Caddy exposes an unprecedented level of control compared to any web server in
existence. In Caddy, you are usually setting the actual values of the
initialized types in memory that power everything from your HTTP handlers and
TLS handshakes to your storage medium. Caddy is also ridiculously extensible,
with a powerful plugin system that makes vast improvements over other web
servers.

To wield the power of this design, you need to know how the config document is
structured. Please see our documentation site for details about Caddy's config
structure.

Nearly all of Caddy's configuration is contained in a single config document,
rather than being scattered across CLI flags and env variables and a
configuration file as with other web servers. This makes managing your server
config more straightforward and reduces hidden variables/factors.

Features:
- Easy configuration with the Caddyfile
- Powerful configuration with its native JSON config
- Dynamic configuration with the JSON API
- Config adapters if you don't like JSON
- Automatic HTTPS by default
  - ZeroSSL and Let's Encrypt for public names
  - Fully-managed local CA for internal names & IPs
  - Can coordinate with other Caddy instances in a cluster
  - Multi-issuer fallback
- Stays up when other servers go down due to TLS/OCSP/certificate-related issues
- Production-ready after serving trillions of requests and managing millions of
  TLS certificates
- Scales to hundreds of thousands of sites as proven in production
- HTTP/1.1, HTTP/2, and HTTP/3 all supported by default
- Highly extensible modular architecture lets Caddy do anything without bloat

Maintainer: The OpenBSD ports mailing-list <ports@openbsd.org>

WWW: https://caddyserver.com/
