infra/ansible/roles/headscale/templates/caddy-hs.service.j2
2023-07-30 00:24:19 +02:00

50 lines
1.4 KiB
Django/Jinja

# {{ ansible_managed }}
[Unit]
Description=Caddy-based headscale proxy
Documentation=https://caddyserver.com/docs/
Wants=network-online.target
# After=network-online.target
After=network.target
[Service]
Environment=CADDYPATH="{{ caddy.home }}"
Environment=HOME="{{ caddy.home }}"
# ExecStartPre=nucaddy validate --config "{{ caddy.home }}/Caddyfile"
# ExecStart=nucaddy run --config "{{ caddy.home }}/Caddyfile"
# ExecReload=nucaddy reload --config "{{ caddy.home }}/Caddyfile"
##ExecStart=caddy reverse-proxy --from "{{ headscale.dns.base_domain }}" --to "{{ headscale.listen_addr }}"
ExecStartPre=caddy validate --config "{{ caddy.home }}/Caddyfile"
ExecStart=caddy run --config "{{ caddy.home }}/Caddyfile"
ExecReload=caddy reload --config "{{ caddy.home }}/Caddyfile"
TimeoutStopSec=10s
TimeoutStartSec=10s
RestartSec=10s
Restart=always
ReadWritePaths="{{ caddy.home }}"
AmbientCapabilities=CAP_NET_BIND_SERVICE
DeviceAllow=
LockPersonality=true
MemoryDenyWriteExecute=false
NoNewPrivileges=true
PrivateDevices=true
PrivateTmp=true
ProtectClock=true
ProtectControlGroups=true
ProtectSystem=strict
ProtectHome=true
ProtectHostname=true
ProtectKernelLogs=true
ProtectKernelModules=true
ProtectKernelTunables=true
ProtectProc=invisible
RemoveIPC=true
RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX
RestrictNamespaces=true
RestrictRealtime=true
[Install]
WantedBy=multi-user.target