- FastAPI + SQLite, serverseitig gerenderte Templates, mobil-zuerst - Admin-Passwort, einseitige Ausschlüsse, eingefrorene Auslosung - Teilnehmer sehen Ergebnis per Cookie; Einmal-Recovery-Links bei Verlust - Docker/podman-tauglich (Entrypoint mit Privilegien-Drop, SELinux-:z) - Unit-Tests für Auslosung, E2E-Testskript (30 Checks)
16 lines
579 B
Bash
16 lines
579 B
Bash
#!/bin/sh
|
||
set -e
|
||
|
||
if [ "$(id -u)" = "0" ]; then
|
||
# Bind-Mounts (z. B. docker compose mit ./data) kommen als root an:
|
||
# Besitz anpassen und dann Rechte an den unprivilegierten Nutzer abgeben.
|
||
if chown wichtel:wichtel /data 2>/dev/null; then
|
||
exec setpriv --reuid=wichtel --regid=wichtel --clear-groups \
|
||
uvicorn app.main:app --host 0.0.0.0 --port 8000
|
||
fi
|
||
# chown nicht möglich (rootless podman): "root" im Container ist hier
|
||
# nur der normale Host-Nutzer – direkt weiterlaufen.
|
||
fi
|
||
|
||
exec uvicorn app.main:app --host 0.0.0.0 --port 8000
|