#!/usr/bin/env bash set -euo pipefail # Datenverzeichnisse existieren auch dann, wenn sie per Bind-Mount frisch # hereinkommen – und gehören www-data, sonst scheitert das erste Schreiben. mkdir -p /var/www/html/data/logs /var/www/html/data/import /var/www/html/data/schluessel chown -R www-data:www-data /var/www/html/data # Schlüssel für die verschlüsselten Felder (FinTS-PIN). Steht APP_KEY nicht in # der Umgebung, wird einmalig einer erzeugt und unter data/ abgelegt – sonst # ließe sich keine Bankverbindung speichern, und ein bei jedem Start neu # gewürfelter Schlüssel machte die gespeicherten Zugangsdaten unlesbar. # # Wer den Schlüssel lieber selbst verwaltet, setzt APP_KEY in der .env; diese # Datei wird dann nicht angelegt. SCHLUESSELDATEI=/var/www/html/data/schluessel/app_key if [ -z "${APP_KEY:-}" ]; then if [ ! -s "$SCHLUESSELDATEI" ]; then openssl rand -hex 32 > "$SCHLUESSELDATEI" echo "APP_KEY erzeugt: data/schluessel/app_key (unbedingt mitsichern – ohne ihn" echo "sind gespeicherte Zugangsdaten verloren)." fi chown www-data:www-data "$SCHLUESSELDATEI" chmod 600 "$SCHLUESSELDATEI" fi # Migrationen laufen bei jedem Start. Sie sind idempotent, ein zweiter Lauf # ändert nichts. if [ -f /var/www/html/scripts/migrate.php ]; then php /var/www/html/scripts/migrate.php || { echo "Migration fehlgeschlagen – Container startet trotzdem, damit man nachsehen kann." >&2 } fi exec "$@"