1. The problem I’m having:
After adding another caddy site config, caddy won’t restart anymore, exiting with code=killed.
2. Error messages and/or full log output:
Apr 28 22:09:57 kpunkt systemd[1]: Starting Caddy...
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.613518,"msg":"maxprocs: Leaving GOMAXPROCS=6: CPU quota undefi
ned"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6142488,"msg":"GOMEMLIMIT is updated","package":"github.com/Ki
mMachineGun/automemlimit/memlimit","GOMEMLIMIT":30286555545,"previous":9223372036854775807}
Apr 28 22:09:57 kpunkt caddy[142830]: caddy.HomeDir=/var/lib/caddy
Apr 28 22:09:57 kpunkt caddy[142830]: caddy.AppDataDir=/var/lib/caddy/.local/share/caddy
Apr 28 22:09:57 kpunkt caddy[142830]: caddy.AppConfigDir=/var/lib/caddy/.config/caddy
Apr 28 22:09:57 kpunkt caddy[142830]: caddy.ConfigAutosavePath=/var/lib/caddy/.config/caddy/autosave.json
Apr 28 22:09:57 kpunkt caddy[142830]: caddy.Version=v2.10.0 h1:fonubSaQKF1YANl8TXqGcn4IbIRUDdfAkpcsfI/vX5U=
Apr 28 22:09:57 kpunkt caddy[142830]: runtime.GOOS=linux
Apr 28 22:09:57 kpunkt caddy[142830]: runtime.GOARCH=amd64
Apr 28 22:09:57 kpunkt caddy[142830]: runtime.Compiler=gc
Apr 28 22:09:57 kpunkt caddy[142830]: runtime.NumCPU=6
Apr 28 22:09:57 kpunkt caddy[142830]: runtime.GOMAXPROCS=6
Apr 28 22:09:57 kpunkt caddy[142830]: runtime.Version=go1.24.2
Apr 28 22:09:57 kpunkt caddy[142830]: os.Getwd=/
Apr 28 22:09:57 kpunkt caddy[142830]: LANG=en_US.UTF-8
Apr 28 22:09:57 kpunkt caddy[142830]: PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
Apr 28 22:09:57 kpunkt caddy[142830]: NOTIFY_SOCKET=/run/systemd/notify
Apr 28 22:09:57 kpunkt caddy[142830]: HOME=/var/lib/caddy
Apr 28 22:09:57 kpunkt caddy[142830]: LOGNAME=caddy
Apr 28 22:09:57 kpunkt caddy[142830]: USER=caddy
Apr 28 22:09:57 kpunkt caddy[142830]: INVOCATION_ID=857c6fe3634046e6abdccba36be7a5f6
Apr 28 22:09:57 kpunkt caddy[142830]: JOURNAL_STREAM=8:403069
Apr 28 22:09:57 kpunkt caddy[142830]: SYSTEMD_EXEC_PID=142830
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6144216,"msg":"using config from file","file":"/etc/caddy/Caddyfile"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6155334,"msg":"adapted config to JSON","adapter":"caddyfile"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6164582,"logger":"admin","msg":"admin endpoint started","address":"localhost:2019","enforce_origin":false,"origins":["//127.0.0.1:2019","//localhost:2019","//[::1]:2019"]}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6166055,"logger":"http.auto_https","msg":"server is listening only on the HTTPS port but has no TLS connection policies; adding one to enable TLS","server_name":"srv0","https_port":443}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6166255,"logger":"http.auto_https","msg":"enabling automatic HTTP->HTTPS redirects","server_name":"srv0"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6166766,"logger":"tls.cache.maintenance","msg":"started background certificate maintenance","cache":"0xc0001a3100"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.616944,"logger":"http","msg":"enabling HTTP/3 listener","addr":":443"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6171377,"logger":"http.log","msg":"server running","name":"srv0","protocols":["h1","h2","h3"]}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"warn","ts":1745870997.617192,"logger":"http","msg":"HTTP/2 skipped because it requires TLS","network":"tcp","addr":":80"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"warn","ts":1745870997.6171987,"logger":"http","msg":"HTTP/3 skipped because it requires TLS","network":"tcp","addr":":80"}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6172035,"logger":"http.log","msg":"server running","name":"remaining_auto_https_redirects","protocols":["h1","h2","h3"]}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6172092,"logger":"http","msg":"enabling automatic TLS certificate management","domains":["server.kpunkt.ch"]}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.6188595,"logger":"tls","msg":"storage cleaning happened too recently; skipping for now","storage":"FileStorage:/var/lib/caddy/.local/share/caddy","instance":"eb5774fc-fafa-4e37-8292-71f393ba2f6b","try_again":1745957397.6188571,"try_again_in":86399.999999483}
Apr 28 22:09:57 kpunkt caddy[142830]: {"level":"info","ts":1745870997.618941,"logger":"tls","msg":"finished cleaning storage units"}
Apr 28 22:09:58 kpunkt caddy[142830]: {"level":"error","ts":1745870998.3714473,"logger":"tls","msg":"tls-alpn challenge","remote_addr":"66.133.109.36:41465","server_name":"pwd.victorinus.ch","error":"no information found to solve challenge for identifier: pwd.victorinus.ch"}
Apr 28 22:11:27 kpunkt systemd[1]: caddy.service: start operation timed out. Terminating.
Apr 28 22:11:27 kpunkt caddy[142830]: {"level":"info","ts":1745871087.686108,"msg":"shutting down apps, then terminating","signal":"SIGTERM"}
Apr 28 22:11:27 kpunkt caddy[142830]: {"level":"warn","ts":1745871087.6863449,"msg":"exiting; byeee!! 👋","signal":"SIGTERM"}
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: State 'stop-sigterm' timed out. Killing.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142830 (caddy) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142831 (caddy) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142834 (caddy) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142835 (caddy) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142836 (caddy) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142838 (n/a) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 142839 (n/a) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Killing process 143162 (n/a) with signal SIGKILL.
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Main process exited, code=killed, status=9/KILL
Apr 28 22:11:32 kpunkt systemd[1]: caddy.service: Failed with result 'timeout'.
Apr 28 22:11:32 kpunkt systemd[1]: Failed to start Caddy.
3. Caddy version:
v2.10.0
4. How I installed and ran Caddy:
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
a. System environment:
Ubuntu 22.04.5 LTS
starting through systemd
b. Command:
sudo systemctl start caddy
c. Service/unit/compose file:
# caddy.service
#
# For using Caddy with a config file.
#
# Make sure the ExecStart and ExecReload commands are correct
# for your installation.
#
# See https://caddyserver.com/docs/install for instructions.
#
# WARNING: This service does not use the --resume flag, so if you
# use the API to make changes, they will be overwritten by the
# Caddyfile next time the service is restarted. If you intend to
# use Caddy's API to configure it, add the --resume flag to the
# `caddy run` command or use the caddy-api.service file instead.
[Unit]
Description=Caddy
Documentation=https://caddyserver.com/docs/
After=network.target network-online.target
Requires=network-online.target
[Service]
Type=notify
User=caddy
Group=caddy
ExecStart=/usr/bin/caddy run --environ --config /etc/caddy/Caddyfile
ExecReload=/usr/bin/caddy reload --config /etc/caddy/Caddyfile --force
TimeoutStopSec=5s
LimitNOFILE=1048576
PrivateTmp=true
ProtectSystem=full
AmbientCapabilities=CAP_NET_ADMIN CAP_NET_BIND_SERVICE
[Install]
WantedBy=multi-user.target
d. My complete Caddy config:
import /etc/caddy/sites-enabled/*.conf
which imports files such as /etc/caddy/sites-enabled/server.kpunkt.ch.conf
server.kpunkt.ch {
reverse_proxy localhost:9443
}