📈 GH Trending Explorer 🎲 Surprise me

← all repos

caddyserver / caddy

git clone https://github.com/caddyserver/caddy.git v2.11.7 · 17d ago 🔥 on GitHub Trending today

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

—
stars, 24h
—
stars, 7 days
+2.5k
stars, 30 days · #135
78k
★ total
5.2k
forks · 292 open issues

Star history starts 2026-10-20; the chart appears after the second daily snapshot.

LanguageGo
LicenseApache-2.0
Created2015-01-13 (11y ago)
Last pushtoday
Watchers871
OwnerOrganization

Seen on GitHub Trending

  • 2026-10-20 — #2 monthly in go · +2,478 ★

GitHub topics

Links

README excerpt
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._
 [code] 
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:
 [code] 
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:
 [code] 
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; please learn how to use your own computer at your own risk and make any needful adjustments.
Then you can run the tests in all modules or a specific one:
 [code] 
### With version informati