stammtisch-hersbruck/backend/entrypoint.sh
Daniel Michelberger 1061a8b9ad chore: Repo-Struktur mit frontend/ und backend/ aufsetzen
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>
2026-08-06 13:16:43 +02:00

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 "$@"