mirror of
https://github.com/caddyserver/caddy.git
synced 2024-12-23 22:27:38 -05:00
2.3 KiB
2.3 KiB
systemd unit for caddy
Please do not hesitate to ask if you have any questions.
Quickstart
- Install the unit configuration file:
cp caddy.service /etc/systemd/system/
- Reload the systemd daemon:
systemctl daemon-reload
- Make sure to configure the service unit before starting caddy.
- Start caddy:
systemctl start caddy.service
- Enable the service (automatically start on boot):
systemctl enable caddy.service
- A folder
.caddy
will be created inside the home directory of the user that runs caddy; you can change that by providing an environment variableHOME
, i.e.Environment=HOME=/var/lib/caddy
will result in/var/lib/caddy/.caddy
.
Configuration
- Do not edit the systemd unit file directly. Instead, use systemd's builtin tools:
systemctl edit caddy.service
to make user-local modificationssystemctl edit --full caddy.service
for system-wide ones
- In most cases it is enough to override the
ExecStart
directive.- systemd needs absolute paths, therefore make sure that the path to caddy is correct.
- example:
[Service]
; an empty value clears the original (and preceding) settings
ExecStart=
ExecStart=/usr/bin/caddy -conf="/etc/caddy/myCaddy.conf" -agree -email="my@mail.address"
- To view the resulting configuration use
systemctl cat caddy
- Double check permissions of your document root path. The user caddy runs as needs to have access to it. For example:
# caddy would run as www-data:www-data
# serving, in this example: /var/www
sudo -u www-data -g www-data -s \
ls -hlAS /var/www
Tips
- Use
log stdout
anderrors stderr
in your Caddyfile to utilizejournalctl
. journalctl
is systemd's log query tool.- Let's say you want all the log entries since the last boot, beginning from the last entry:
journalctl --reverse --boot --unit caddy.service
- To follow caddy's log output:
journalctl -fu caddy.service
- Send a signal to a service unit's main PID, e.g. have caddy reload its config:
systemctl kill --signal=USR1 caddy.service
- If you have more files that start with
caddy
– like acaddy.timer
,caddy.path
, orcaddy.socket
– then it is important to append.service
. Although ifcaddy.service
is all you have, then you can just usecaddy
without any extension, such as in:systemctl status caddy