kundenplattform/kundenplattform.service
Thomas Stallinger c4825acd61 feat: initiale Kundenplattform (Login + Auftragskatalog-Auswahl)
Neuer, von provisioning-server (anode) getrennter Dienst, siehe ADR-0011:
FastAPI + Jinja2, eigene Postgres-DB (benutzer-Tabelle), eigenes
Service-Token (TUXFLOTTE_KUNDENPLATTFORM_TOKEN) für die Kommunikation mit
anode. Org-Zugehörigkeits-Prüfung passiert hier in der Anwendung vor jedem
Aufruf gegen anode.

Umfang v1: Login, Geräteliste, Auftragskatalog geräteweise aus-/abwählen
(inkl. der standardbrowser-Option für Brave). systemd-Unit läuft unter
eigenem unprivilegiertem System-User statt root.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-04 17:00:03 +02:00

26 lines
671 B
Desktop File

[Unit]
Description=Tuxflotte Kundenplattform
After=network.target
[Service]
Type=simple
User=kundenplattform
Group=kundenplattform
WorkingDirectory=/opt/kundenplattform
EnvironmentFile=/etc/tuxflotte/kundenplattform.env
ExecStart=/opt/kundenplattform/.venv/bin/uvicorn app:app --host 0.0.0.0 --port 8081
Restart=always
RestartSec=3
# Härtung - läuft bewusst unter einem eigenen, unprivilegierten System-User
# statt root (anders als provisioning-server, siehe ADR-0011: exponiertere,
# kundenzugängliche Komponente).
NoNewPrivileges=true
PrivateTmp=true
ProtectSystem=strict
ProtectHome=true
ReadWritePaths=/opt/kundenplattform
[Install]
WantedBy=multi-user.target