#!/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 "$@"