caddyserver /caddy
Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS
★ 78,943⑂ 5,252👁 867⑃ 3,361● 4,728▤ 140◈ 0
78,943
stars
+30+286+1,943
5,252
forks
867
watchers
3,361
prs
4,728
issues
140
releases
0
discussions
README
a project Every site on HTTPS Caddy is an extensible server platform that uses TLS by default. Releases · Documentation · Get Help Powered by Special thanks to: Warp, built for coding with multiple AI agents Available for MacOS, Linux, & Windows Menu - Features - Install - Build from source - For development - With version information and/or plugins - Quick start - Overview - Full documentation - Getting help - About 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 - Encrypted ClientHello (ECH) support - 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 - Runs anywhere with no external dependencies (not even libc) - Written in Go, a language with higher memory safety guarantees than other servers - Actually fun to use - So much more to discover Install The simplest, cross-platform way to get started is to download Caddy from GitHub Releases and place the executable file in your PATH. See our online documentation for other install instructions. Build from source Requirements: - Go 1.26.0 or newer For development _Note: These steps will not embed proper version information. For that, please follow the instructions in the next section._ bash $ git clone "https://github.com/caddyserver/caddy.git" $ cd caddy/cmd/caddy/ $ go build When you run Caddy, it may try to bind to low ports unless otherwise specified in your config. If your OS requires elevated privileges for this, you will need to give your new binary permission to do so. On Linux, this can be done easily with: sudo setcap cap_net_bind_service=+ep ./caddy If you prefer to use go run which only creates temporary binaries, you can still do this with the included setcap.sh like so: bash $ go run -exec ./setcap.sh main.go If you don't want to type your password for setcap, use sudo visudo to edit your sudoers file and allow your user account to run that command without a password, for example: username ALL=(ALL:ALL) NOPASSWD: /usr/sbin/setcap replacing username with your actual username. Please be careful and only do this if you know what you are doing! We are only qualified to document how to use Caddy, not Go tooling or your computer, and we are providing these instructions for convenience only
Top issues
#6683fatal error: concurrent map read and map write after upgrading 2.7.6 to 2.8.4 and/or adding github.com/caddyserver/cache-handler46 comments · 2024-11-10#7147ACME broken for .internal adresses44 comments · 2025-07-29#6678Requests aborted over HTTP/335 comments · 2024-11-05#7249Output a lot of information and exit automatically31 comments · 2025-09-10#5280possible bug with 1xx status code handling28 comments · 2023-01-02#7222Preserve active websocket connections when unrelated routes are updated22 comments · 2025-08-29#5116Support "precompressed" files without "base" files22 comments · 2022-10-03#4016Better control over Prometheus metrics22 comments · 2021-02-12
Latest release
v2.11.9 v2.11.9 2026-11-05This is a quick follow-up on top of 2.11.8, to fix a regression it introduced and a few more security issues, mostly in FastCGI. It contains only fixes backported from master, plus a couple of small additions. If you're on 2.11.8 and serve PHP, we recommend upgrading. Huge thank you to our sponsors for keeping the project alive with resources, and for our maintainers who triage and assist tirelessly in this relentless new age of AI. Highlights - Fixed: PHP directory indexes (regression in 2.11.8). A request for a directory with a trailing slash, like /wp-admin/, was matched by the di
相关报道 (2)
News & coverage (10)
Hacker NewsCaddy Proposal: Permanently change all proprietary licensing to open source▲ 357 · 76 comments · 2019-10-04Hacker NewsCaddyhttp: Enable HTTP/3 by Default▲ 284 · 115 comments · 2022-09-08Hacker NewsShow HN: Caddy v2.5.0▲ 269 · 112 comments · 2022-04-26Hacker NewsCaddy 2.8▲ 179 · 75 comments · 2024-05-29Hacker NewsCaddy 2.6 is out, the biggest release since Caddy 2▲ 56 · 7 comments · 2022-09-20Hacker NewsIt's here Caddy 2 is ready for production▲ 21 · 1 comments · 2020-05-04Hacker NewsCaddy v2.10▲ 11 · 1 comments · 2025-04-18Hacker NewsCaddy Server: Smarter path matching and rewriting (PR)▲ 8 · 0 comments · 2022-08-12Ars TechnicaCaddy offers TLS, HTTPS, and more in one dependency-free Go Web server2020-05-05HostingerHow to install Buzz app on a VPS2026-07-31