{{include "/includes/head.html"}}
{{include "/includes/header.html" "dark-header"}}

All features
You might want to sit down for this.

Overview

Caddy is essentially a configuration management system that can run various apps like an HTTP server, TLS certificate manager, PKI facilities, and more. It can be extended with plugins known as config modules. At the end of the page, we list capabilities that are provided by known, popular plugins.

Caddy sports a powerful and flexible HTTP reverse proxy, on-line configuration API, and a robust, production-ready static file server, and serves all sites over HTTPS by default with automagic TLS certificates.

High-level technical specifications

Language

The language choice is crucial for a web server. Most servers (NGINX, Apache, HAProxy, etc.) and their dependencies are written in C, which are vulnerable to catastrophic memory safety bugs like Heartbleed. Go programs like Caddy are impervious to a whole class of security vulnerabilities.
Go

Build artifacts

Caddy compiles directly to native CPU instructions. There is no interpreter required; and many instructions are architecture-optimized.
Platform-native static binary

Runtime dependencies

Caddy is statically compiled. Dynamically-linked applications can easily break in production and may be less secure as shared executable resources are loaded from various places around the system. Generally, Caddy binaries do not necessarily require external libraries — not even libc.
None

Compile time

On consumer hardware, standard Caddy builds compile in just a few seconds. This is crucial for rapid iteration, plugin development, and low-cost deployments.
5 seconds

Deployment environments

Caddy can go practically anywhere and be deployed a variety of ways.
  • System service
  • Command line interface
  • Containers
  • Kubernetes
{{include "/includes/footer.html"}}