#!/bin/bash set -e # Funktion zum Warten auf MySQL wait_for_db() { echo "Warte auf Datenbank-Verbindung zu $DB_SERVER..." # Max 30 Sekunden warten for i in {1..30}; do if mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" -e "SELECT 1" >/dev/null 2>&1; then echo "Datenbank ist erreichbar!" return 0 fi sleep 1 done echo "Fehler: Datenbank nicht erreichbar nach 30 Sekunden." return 1 } # Wenn DB_SERVER gesetzt ist, versuchen wir die Migration if [ ! -z "$DB_SERVER" ]; then if wait_for_db; then echo "Prüfe Datenbank-Schema..." # Prüfen ob 'users' Tabelle existiert if ! mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" "$DB_NAME" -e "SELECT 1 FROM users LIMIT 1" >/dev/null 2>&1; then echo "Initialisiere Datenbank-Struktur..." mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" "$DB_NAME" < /var/www/html/database/install.sql # Standard-User anlegen (testnutzer / Start123!) echo "Lege Standard-Benutzer an..." # Hash für 'Start123!' HASH='$2y$10$Ov7qzHnk4EKYdDNLNP073ecsrRJM5VtK4iWcMKBFBosEc6kaFbC.y' mysql -h"$DB_SERVER" -u"$DB_USERNAME" -p"$DB_PASSWORD" "$DB_NAME" -e "INSERT INTO users (username, password_hash) VALUES ('testnutzer', '$HASH')" echo "Datenbank erfolgreich initialisiert." else echo "Datenbank ist bereits initialisiert." fi fi else echo "Warnung: DB_SERVER nicht gesetzt. Überspringe Datenbank-Check." fi # Apache starten exec apache2-foreground