emergency-access.service 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. [Unit]
  2. Description=Emergency Access Key Server
  3. After=network.target
  4. Wants=network.target
  5. [Service]
  6. Type=simple
  7. User=emergency-access
  8. Group=emergency-access
  9. WorkingDirectory=/opt/emergency-access
  10. Environment=EMERGENCY_CONFIG=/etc/emergency-access/config.json
  11. Environment=PYTHONPATH=/opt/emergency-access
  12. Environment=NTFY_CONFIG=/etc/emergency-access/ntfy.yml
  13. ExecStart=/opt/emergency-access/venv/bin/python /opt/emergency-access/main.py
  14. ExecReload=/bin/kill -HUP $MAINPID
  15. Restart=always
  16. RestartSec=5
  17. StandardOutput=journal
  18. StandardError=journal
  19. # Security settings
  20. NoNewPrivileges=true
  21. ProtectSystem=strict
  22. ProtectHome=true
  23. ReadWritePaths=/var/log
  24. ReadOnlyPaths=/etc/emergency-access
  25. PrivateTmp=true
  26. ProtectKernelTunables=true
  27. ProtectKernelModules=true
  28. ProtectControlGroups=true
  29. RestrictRealtime=true
  30. RestrictNamespaces=true
  31. LockPersonality=true
  32. MemoryDenyWriteExecute=true
  33. RestrictSUIDSGID=true
  34. # Network restrictions - allow localhost only (Caddy reverse proxy)
  35. IPAddressDeny=any
  36. IPAddressAllow=localhost
  37. IPAddressAllow=127.0.0.0/8
  38. [Install]
  39. WantedBy=multi-user.target