mirror of
https://github.com/caddyserver/caddy.git
synced 2025-10-29 17:52:50 -04:00
Add systemd service file for caddy Add some README with basic setup instructions Explain how to view the service configuration Add a note about permissions Add a comment about run user and group service->service unit A systemd service can consist of different units. A unit configuration file has the `.service` file ending which is a bit confusing, so please be considerate if I'm confusing `service` and `unit` in the README Fix typos/reword Add contact information
systemd unit for caddy
Please do not hesitate to ask me if you've any questions.
Quickstart
- install the unit configuration file:
cp caddy@.service /etc/systemd/system - reload the systemd daemon:
systemctl deamon-reload - make sure to configure the service unit before starting caddy
- start caddy:
systemctl start caddy@someuser - enable the service (automatically start on boot):
systemctl enable caddy@someuser - the
.caddyfolder will be created inside the users home directory that runs caddy, i.e./home/someuser/.caddyforsystemctl start caddy@someuser
Configuration
- do not edit the systemd unit directly, use systemd's builtin tools:
systemctl edit caddy@to make user local modifications to the service unitsystemctl edit --full caddy@to make system-wide modifications
- in most cases it's enough to adapt the
ExecStartdirective:systemctl edit caddy@- systemd needs absolute paths, therefore make sure that the path to caddy is correct
- example:
[Service]
; reset the original setting
ExecStart=
ExecStart=/usr/bin/caddy -conf="/etc/caddy/myCaddy.conf" -agree -email="my@mail.address"
- to view your configuration use
systemctl cat caddy@ - double check the permissions of your web root path to make sure that caddy can access it as its run user and group
Tips
- use
log stdoutanderrors stderrin your Caddyfile to make use ofjournalctl journalctlis systemd's log query tool- lets say you want all the log entries for caddy since the last boot beginning from the last entry:
journalctl --reverse --boot --unit caddy@someuser - maybe you want to follow caddys log output:
journalctl -fu caddy@someuser - to send a signal to a service units main PID, e.g. let caddy reload its config:
systemctl kill --signal=USR1 caddy@someuser