diff --git a/deploy/crushdb.service b/deploy/crushdb.service index 3b68167..f665a78 100644 --- a/deploy/crushdb.service +++ b/deploy/crushdb.service @@ -5,11 +5,12 @@ # systemctl daemon-reload # systemctl enable --now crushdb # -# Die App lauscht auf http://127.0.0.1:PORT (siehe Environment unten) -# und lebt für einen vertrauenswürdigen Reverse Proxy (nginx/caddy). +# Die App lauscht auf http://127.0.0.1:8085 (siehe Environment unten) +# hinter einem vertrauenswürdigen Reverse Proxy (nginx/caddy), der +# TLS terminiert. [Unit] -Description=crushdb – encrypted record database (Flask) +Description=crushdb - encrypted record database (Flask) After=network.target [Service] @@ -22,14 +23,13 @@ ExecStart=/srv/crushdb/venv/bin/python /srv/crushdb/run.py Environment=HOST=127.0.0.1 Environment=PORT=8085 -Restart=on-failure -RestartSec=3 +# Nur der SQLite-Ordner darf beschrieben werden; sonst ist das FS read-only. +ReadWritePaths=/srv/crushdb/instance # Hardening: nur das nötigste erlauben NoNewPrivileges=yes PrivateTmp=yes ProtectSystem=strict -ReadWritePaths=/srv/crushdb/instance ProtectHome=yes ProtectKernelTunables=yes ProtectControlGroups=yes @@ -37,5 +37,8 @@ RestrictSUIDSGID=yes CapabilityBoundingSet= RestrictAddressFamilies=AF_INET AF_INET6 AF_UNIX +Restart=on-failure +RestartSec=3 + [Install] WantedBy=multi-user.target