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>
26 lines
671 B
Desktop File
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
|