--- title: "Install" --- # Install Caddy is available for every platform as a [static binary](https://github.com/caddyserver/caddy/releases) (it has no dependencies). You can also [build from source](#build-from-source) to customize your build. ## Official packages We maintain [official distributions](https://github.com/caddyserver/dist) for the following platforms: - **DigitalOcean** [Create a Caddy droplet](https://marketplace.digitalocean.com/apps/caddy) and get started in 90 seconds. - **Fedora, RedHat, CentOS** Read how to [install the Caddy COPR](https://copr.fedorainfracloud.org/coprs/g/caddy/caddy/). - **Docker** [docker pull caddy/caddy](https://hub.docker.com/r/caddy/caddy) ## Manually installing as a Linux service Requirements: - A `caddy` binary that you downloaded or built from source - Systemd version 232 or newer - Superuser rights Move the `caddy` binary into your `$PATH`, for example:
sudo mv caddy /usr/bin/
Test that it worked:
caddy version
Create a group named `caddy`:
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](https://github.com/caddyserver/dist/blob/master/init/caddy.service) 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. Make sure your config file is in the location specified in the command. 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`:
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
## Build from source Requirements: - [Go](https://golang.org/dl) 1.14 or newer - [Go modules](https://github.com/golang/go/wiki/Modules) enabled Download the source code:
git clone "https://github.com/caddyserver/caddy.git"
Build:
cd caddy/cmd/caddy/
go build