Caddy is available for every platform as a static binary (it has no dependencies). You can also build from source to customize your build.
We maintain official distributions for the following platforms:
Create a Caddy droplet and get started in 90 seconds.
Fedora, RedHat, CentOS
Read how to install the Caddy COPR.
docker pull caddy/caddy
Manually installing as a Linux service
- A Caddy binary that you downloaded or built from source
- Systemd version 232 or newer
- Superuser rights
caddy binary into your
$PATH, for example:
sudo mv caddy /usr/bin/
Test that it worked:
Create a group named
groupadd --system caddy
Create a user named
caddy, with a writeable home folder:
useradd --system \ --gid caddy \ --create-home \ --home-dir /var/lib/caddy \ --shell /usr/sbin/nologin \ --comment "Caddy web server" \ caddy
Next, take this systemd unit file and save it to
/etc/systemd/system/caddy.service. Double-check the ExecStart and ExecReload directives---make sure the binary's location and command line arguments are correct for your installation.
Double-check that both your systemd and Caddy configs are correct before continuing.
To start the service for the first time, do the usual systemctl dance:
sudo systemctl daemon-reload sudo systemctl enable caddy sudo systemctl start caddy
Verify that it is running:
systemctl status caddy
When running with our official service file, Caddy's output will be redirected to
journalctl -u caddy
To gracefully apply any changes to your config file (if using one):
sudo systemctl reload caddy
You can stop the service with:
sudo systemctl stop caddy
Building from source
v2 branch source code:
git clone -b v2 "https://github.com/caddyserver/caddy.git"
cd caddy/cmd/caddy/ go build