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.
Caddy sports a flexible and powerful 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.
Overall program technical specifications
Language
Build artifacts
Runtime dependencies
Compile time
Deployment environments
- Command line interface
- System service
- Containers
- Kubernetes
- Embedded
Supply chain and releases
Operating systems
- Linux
- Windows
- macOS
- FreeBSD
- OpenBSD
- NetBSD
- Android
Microarchitectures
- x86 (i386, i686)
- x86-64 (AMD64)
- ARM
- ARM 64 (AArch64)
- MIPS
- MIPS64[LE]
- PPC64[LE]
- RISCV64
- S390X
- Apple Silicon (Apple ARM; M1, M2, etc.)
Regular expression engine
Concurrency model
Plugin model
High-level capabilities
Configuration changes
- RESTful HTTP API
- Config files
- Secure remote access
App modules
- HTTP
- TLS
- PKI
- Events
- Raw TCP & UDP
- SSH
- PHP
- Dynamic DNS
- Security
- Process supervision
- Profiling
Logs
- Leveled
- Structured
- High efficiency, zero-allocation
Storage
- File system
- Embedded (in-memory)
- Postgres
- Redis
- Vault
- Consul
Command line interface
Caddy's CLI is not only useful—it's helpful. While most server CLIs merely run the process and reload config, Caddy's CLI goes the extra lightyear to help make administering your modern web server a breeze.
Plugins can register their own subcommands to extend Caddy's CLI.
Command help
caddy help
or -h
.
man
pages can also be generated)
Admin API wrappers
- Adapt config to JSON
- Start the server, optionally with config
- Gracefully reload configuration
- Stop the server
Binary utilities
- Detailed build metadata
- List installed config modules
- List dependencies
- Add and remove plugin packages
- Print the version
- Upgrade the Caddy binary
Configuration utilities
- Format Caddyfile
- Validate configuration
- List dependencies
- Add and remove plugin packages
- Print the version
Module utilities
- Static file server
- HTTP reverse proxy
- Static HTTP responses (templateable)
- Storage import/export (backup/restore)
- Hash password for use with HTTP basic auth
- Export file browse template
Integration utilities
- Generate shell completion script
- Print the environment
- Generate
man
pages - Install Caddy-managed root CA into trust stores
- Remove Caddy-managed root CA from trust stores
System signals
- INT (graceful stop)
- QUIT
- TERM
Exit codes
Configuration
We've designed Caddy so that its configuration not only provides access to features, but it IS a feature in and of itself.
No more quibbling over which config file format is the best: use whatever you want! Caddy's config adapters allow you to use whatever config format you prefer.
Native config format
Config adapters
- Caddyfile
- JSON 5
- JSON-C
- NGINX Conf
- YAML
- CUE
- TOML
- HCL
- Dhall
- MySQL
Human-friendly config
Export
Config API
Config files
HTTP File Server
Caddy's file server is best-in-class.