Install
This page describes various methods for installing Caddy on your system.
Official:
- Static binaries
- Debian, Ubuntu, Raspbian packages
- Fedora, RedHat, CentOS packages
- Arch Linux, Manjaro, Parabola packages
- Docker image
Community-maintained:
- Gentoo
- Homebrew (Mac)
- Chocolatey (Windows)
- Scoop (Windows)
- Webi
- Ansible
- Termux
- Nix/Nixpkgs/NixOS
- Unikraft
- OPNsense
Static binaries
If installing onto a production system, we recommend using our official package for your distro if available below.
- Obtain a Caddy binary:
- from releases on GitHub (expand "Assets")
- Refer to Verifying Asset Signatures for how to verify the asset signature
- from our download page
- by building from source (either with
go
orxcaddy
)
- from releases on GitHub (expand "Assets")
- Install Caddy as a system service. This is strongly recommended, especially for production servers.
Place the binary in one of your $PATH
(or %PATH%
on Windows) directories so you can run caddy
without typing the full path of the executable file. (Run echo $PATH
to see the list of directories that qualify.)
You can upgrade static binaries by replacing them with newer versions and restarting Caddy. The caddy upgrade
command can make this easy.
Debian, Ubuntu, Raspbian
Installing this package automatically starts and runs Caddy as a systemd service named caddy
. It also comes with an optional caddy-api
service which is not enabled by default, but should be used if you primarily configure Caddy via its API instead of config files.
After installing, please read the service usage instructions.
Stable releases:
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
sudo apt update
sudo apt install caddy
Testing releases (includes betas and release candidates):
sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-testing-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/testing/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-testing.list
sudo apt update
sudo apt install caddy
If you wish to use the packaged support files (systemd services, bash completion and default configuration) with a custom Caddy build, instructions can be found here.
Fedora, RedHat, CentOS
This package comes with both of Caddy's systemd service unit files, but does not enable them by default. Using the service is recommended. If you do, please read the service usage instructions.
Fedora or RHEL/CentOS 8:
dnf install 'dnf-command(copr)'
dnf copr enable @caddy/caddy
dnf install caddy
RHEL/CentOS 7:
yum install yum-plugin-copr
yum copr enable @caddy/caddy
yum install caddy
Arch Linux, Manjaro, Parabola
This package comes with heavily modified versions of both of Caddy's systemd service unit files, but does not enable them by default. Those modifications include a custom start/stop behavior and additional sandboxing flags which are explained in systemd's exec documentation, which may lead to certain host directories not being available to the Caddy process.
pacman -Syu caddy
View Caddy in the Arch Linux repositories and the Arch Linux Wiki
Docker
docker pull caddy
See our recommended Docker Compose configuration and usage instructions.
Gentoo
Note: This is a community-maintained installation method.
emerge www-servers/caddy
Homebrew (Mac)
Note: This is a community-maintained installation method.
brew install caddy
Chocolatey (Windows)
Note: This is a community-maintained installation method.
choco install caddy
Scoop (Windows)
Note: This is a community-maintained installation method.
scoop install caddy
Webi
Note: This is a community-maintained installation method.
Linux and macOS:
curl -sS https://webi.sh/caddy | sh
Windows:
curl.exe https://webi.ms/caddy | powershell
You may need to adjust the Windows firewall rules to allow non-localhost incoming connections.
Ansible
Note: This is a community-maintained installation method.
ansible-galaxy install nvjacobo.caddy
View the Ansible role repository
Termux
Note: This is a community-maintained installation method.
pkg install caddy
Nix/Nixpkgs/NixOS
Note: This is a community-maintained installation method.
- Package name:
caddy
- NixOS module:
services.caddy
View Caddy in the Nixpkgs search and the NixOS options search
Unikraft
Note: This is a community-maintained installation method.
First install Unikraft's companion tool, kraft
:
curl --proto '=https' --tlsv1.2 -sSf https://get.kraftkit.sh | sh
Then run Caddy with Unikraft using:
kraft run --rm -p 2015:2015 --plat qemu --arch x86_64 -M 256M caddy:2.7
To allow non-localhost incoming connections, you need to connect the unikernel instance to a network.
View the Unikraft application catalog and the KraftCloud platform examples (powered by Unikraft).
OPNsense
Note: This is a community-maintained installation method.
pkg install os-caddy
View the FreeBSD caddy-custom makefile and the os-caddy plugin source