explaingit

caddyserver/caddy

Analysis updated 2026-06-20

72,131GoAudience · ops devopsComplexity · 2/5Setup · easy

TLDR

Caddy is a web server that automatically handles HTTPS certificate setup and renewal for you, so you can serve websites or apps over a secure connection without any manual steps.

Mindmap

mindmap
  root((caddy))
    What it does
      Auto HTTPS
      Web serving
      Reverse proxy
    Tech stack
      Go single binary
      Let's Encrypt
      HTTP/3 QUIC
    Use cases
      Self-hosted sites
      Reverse proxy
      API hosting
    Audience
      Developers
      Self-hosters
      Ops teams
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Serve a personal website or self-hosted app over HTTPS without touching certificates manually.

USE CASE 2

Set up a reverse proxy in front of an existing app so it gets a real domain and automatic TLS.

USE CASE 3

Host an API or web service with HTTP/3 support out of the box using a single downloaded binary.

USE CASE 4

Dynamically reconfigure routing rules via the JSON API without restarting the server.

What is it built with?

Go

How does it compare?

caddyserver/caddymoby/mobynektos/act
Stars72,13171,52170,179
LanguageGoGoGo
Setup difficultyeasyhardeasy
Complexity2/55/52/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min
The project is described as open-source, but the specific license name is not mentioned in the explanation.

In plain English

Caddy is a web server that makes it easy to serve websites and applications over the internet with automatic HTTPS. The main problem it solves is the tedious setup usually required for SSL/TLS certificates (the technology that makes HTTPS work). Normally you have to manually request certificates from a certificate authority, configure your server to use them, and remember to renew them before they expire. Caddy does all of this automatically using services like Let's Encrypt and ZeroSSL, with no manual steps required. Caddy works by reading a simple configuration file called a Caddyfile, where you declare your domain names, what content or application you want to serve, and any routing rules. It handles certificate issuance and renewal silently in the background. For more complex setups it also supports a JSON-based configuration and a live JSON API that lets you change configuration without restarting the server. It supports HTTP/1.1, HTTP/2, and HTTP/3 (the latest version of the web protocol, based on QUIC). Because it is written in Go, a single binary contains everything needed to run the server with no external dependencies, not even the C runtime library. It can be extended with plugins that add reverse proxying, load balancing, authentication, and other features. You would use Caddy if you are self-hosting a website, API, or application on a server and want HTTPS to just work without manual certificate management. It is popular as a reverse proxy in front of other applications, and as a replacement for Nginx or Apache for simpler setups. The tech stack is Go, and deployment is typically a single downloaded binary. It runs on Linux, macOS, and Windows. The project is open-source and production-tested at large scale.

Copy-paste prompts

Prompt 1
Write a Caddyfile that serves my static HTML site from /var/www/html on example.com with automatic HTTPS and a redirect from www to the apex domain.
Prompt 2
Show me a Caddyfile that reverse-proxies all requests for myapp.com to localhost:3000 and handles HTTPS certificate renewal automatically.
Prompt 3
I want to add HTTP basic authentication to the /admin path on my Caddy site. Write the Caddyfile directive to protect that route with a username and hashed password.
Prompt 4
Show me how to use Caddy's live JSON API to add a new reverse proxy route without restarting the server.
Prompt 5
Configure Caddy to serve multiple domains from the same server, each pointing to a different local port, all with separate automatic HTTPS certificates.

Frequently asked questions

What is caddy?

Caddy is a web server that automatically handles HTTPS certificate setup and renewal for you, so you can serve websites or apps over a secure connection without any manual steps.

What language is caddy written in?

Mainly Go. The stack also includes Go.

What license does caddy use?

The project is described as open-source, but the specific license name is not mentioned in the explanation.

How hard is caddy to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is caddy for?

Mainly ops devops.

Open on GitHub → Explain another repo

This repo across BitVibe Labs

Scan in gitsafehub Deploy in gitdeployhub caddyserver on gitmyhub

Verify against the repo before relying on details.