Die SvelteKit-App liegt unter frontend/, das Backend unter backend/ als eigenständige PocketBase-Instanz mit Dockerfile, docker-compose und versioniertem Schema. - PocketBase-URL über PUBLIC_PB_URL konfigurierbar, Default bleibt die produktive Instanz https://api.stammtisch-hersbruck.de - Schema als Snapshot-Migration der sechs fachlichen Collections (users, teams, events, runs, riders, times), abgezogen von der produktiven Instanz. Verifiziert: ein Erststart gegen leere pb_data legt alle sechs an, Felder und API-Rules stimmen überein. - pb_data und pb_migrations als Bind-Mounts, damit Daten persistieren und im Admin-UI erzeugte Migrationen im Repo landen - Veraltete Dokumentation entfernt: pocketbase_schema.json nannte Collections (stages, results, organizers), die es nicht gibt Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
38 lines
1.5 KiB
Bash
38 lines
1.5 KiB
Bash
#!/bin/sh
|
|
set -e
|
|
|
|
# Superuser nur beim allerersten Start anlegen. Existiert der Account bereits,
|
|
# scheitert "create" von selbst mit "email: Value must be unique." und das
|
|
# Passwort bleibt unangetastet. Damit überschreibt ein Redeploy keine
|
|
# Passwortänderung, die im Admin-UI gemacht wurde.
|
|
#
|
|
# Bewusst NICHT "superuser upsert": das würde bei jedem Start das Passwort aus
|
|
# der Env zurückschreiben und UI-seitige Änderungen still aushebeln.
|
|
#
|
|
# Ohne die beiden Variablen wird der Schritt übersprungen; PocketBase zeigt dann
|
|
# beim ersten Start einen Installer-Link im Log.
|
|
if [ -n "$SUPERUSER_EMAIL" ] && [ -n "$SUPERUSER_PASSWORD" ]; then
|
|
# PocketBase liefert auch im Fehlerfall Exitcode 0 und meldet den Fehler nur
|
|
# auf stdout — deshalb wird hier die Ausgabe ausgewertet, nicht der Status.
|
|
out=$(/pb/pocketbase superuser create "$SUPERUSER_EMAIL" "$SUPERUSER_PASSWORD" \
|
|
--dir=/pb/pb_data 2>&1) || true
|
|
|
|
case "$out" in
|
|
*"must be unique"*)
|
|
echo "Superuser existiert bereits — Passwort bleibt unverändert"
|
|
;;
|
|
*"Successfully created"*)
|
|
echo "$out"
|
|
;;
|
|
*)
|
|
# Unerwarteter Fehler (z. B. zu kurzes Passwort): sichtbar machen und
|
|
# abbrechen, statt mit unklarem Zustand weiterzulaufen.
|
|
echo "Superuser konnte nicht angelegt werden: $out" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
else
|
|
echo "SUPERUSER_EMAIL/SUPERUSER_PASSWORD nicht gesetzt — Superuser wird nicht angelegt"
|
|
fi
|
|
|
|
exec "$@"
|