emergency-access.service 1020 B

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. ExecStart=/opt/emergency-access/venv/bin/python /opt/emergency-access/main.py
  13. ExecReload=/bin/kill -HUP $MAINPID
  14. Restart=always
  15. RestartSec=5
  16. StandardOutput=journal
  17. StandardError=journal
  18. # Security settings
  19. NoNewPrivileges=true
  20. ProtectSystem=strict
  21. ProtectHome=true
  22. ReadWritePaths=/var/log
  23. ReadOnlyPaths=/etc/emergency-access
  24. PrivateTmp=true
  25. ProtectKernelTunables=true
  26. ProtectKernelModules=true
  27. ProtectControlGroups=true
  28. RestrictRealtime=true
  29. RestrictNamespaces=true
  30. LockPersonality=true
  31. MemoryDenyWriteExecute=true
  32. RestrictSUIDSGID=true
  33. # Network restrictions - allow localhost only (Caddy reverse proxy)
  34. IPAddressDeny=any
  35. IPAddressAllow=localhost
  36. IPAddressAllow=127.0.0.0/8
  37. [Install]
  38. WantedBy=multi-user.target