Overview
Caddy is a modern, extensible, and easy-to-use web server platform that prioritizes security and performance. It's designed to simplify complex web serving tasks, making it accessible to both beginners and experienced developers. At its core, Caddy is a platform for running Go applications, with its robust tls and http modules shipping as standard. It supports dynamic configuration changes via its API and offers flexibility with various configuration adapters, allowing you to use formats like Caddyfile, JSON, YAML, and more. Caddy provides unparalleled control over your server's behavior, from HTTP handlers to TLS handshakes, all managed within a unified configuration document.
Key Features
- Automatic HTTPS by Default: Caddy is the first web server to offer automatic HTTPS out-of-the-box. It seamlessly manages TLS certificates from ZeroSSL and Let's Encrypt for public domains and uses a managed local CA for internal names and IPs. It can even coordinate certificate management across clustered instances.
- HTTP/1.1, HTTP/2, and HTTP/3 Support: All modern HTTP protocols are supported out-of-the-box, ensuring optimal performance and compatibility for your sites.
- Highly Extensible Modular Architecture: Caddy's plugin system allows for vast customization without bloat. You can extend its capabilities to suit any need.
- No External Dependencies: Caddy runs anywhere with zero external dependencies, not even libc, simplifying deployment and reducing potential points of failure.
- Easy and Powerful Configuration: Configure Caddy using the user-friendly Caddyfile, its native JSON config, or dynamically via its JSON API. Config adapters support various formats like YAML, TOML, and NGINX configs.
- Production-Ready and Scalable: Proven in production to handle trillions of requests and manage millions of TLS certificates, Caddy is built for reliability and scales to serve hundreds of thousands of sites.
- Memory Safe: Written in Go, Caddy benefits from the language's strong memory safety guarantees.
Typical Use Cases
- Modern Web Server: Deploying static websites, single-page applications (SPAs), and dynamic web applications with ease.
- API Gateway: Routing and proxying requests to backend microservices.
- Reverse Proxy: Efficiently proxying traffic to existing web applications and services.
- Load Balancer: Distributing traffic across multiple backend servers.
- Development Server: Providing a fast and secure local development environment.
- Internal Tooling: Serving internal applications and APIs with automatic TLS for enhanced security.
