#!/bin/bash # Script zum Debuggen von Server-Errors in Hördle # Zeigt relevante Logs und Status-Informationen set -e echo "🔍 Hördle Server Error Debugging" echo "==================================" echo "" # Container-Status prüfen echo "📦 Container-Status:" docker ps --filter "name=hoerdle" --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}" echo "" # Prüfe ob Container läuft if ! docker ps | grep -q "hoerdle"; then echo "❌ FEHLER: hoerdle Container läuft nicht!" echo "" echo "Versuche Container zu starten..." docker compose up -d sleep 5 echo "" fi # Letzte Logs anzeigen echo "📋 Letzte 50 Zeilen der Container-Logs:" echo "----------------------------------------" docker logs --tail=50 hoerdle 2>&1 | tail -50 echo "" echo "" # Suche nach Fehlern in den Logs echo "🚨 Fehler in den Logs (letzte 100 Zeilen):" echo "----------------------------------------" docker logs --tail=100 hoerdle 2>&1 | grep -i -E "error|exception|failed|fatal|panic" || echo "Keine offensichtlichen Fehler gefunden" echo "" echo "" # Container Health Status echo "💚 Health Check Status:" docker inspect hoerdle --format='{{json .State.Health}}' | python3 -m json.tool 2>/dev/null || docker inspect hoerdle --format='{{.State.Status}}' echo "" echo "" # Prüfe ob der Server auf Port 3000 antwortet (intern) echo "🔌 Port-Verbindungstest (intern, Port 3000):" echo "----------------------------------------" docker exec hoerdle curl -f -s -o /dev/null -w "HTTP Status: %{http_code}\n" http://localhost:3000/api/daily 2>&1 || echo "❌ Verbindung fehlgeschlagen" echo "" echo "" # Prüfe Datenbank echo "💾 Datenbank-Status:" echo "----------------------------------------" if docker exec hoerdle test -f /app/data/prod.db; then echo "✅ Datenbankdatei existiert" DB_SIZE=$(docker exec hoerdle stat -c%s /app/data/prod.db 2>/dev/null || echo "unbekannt") echo " Größe: $DB_SIZE Bytes" else echo "❌ Datenbankdatei nicht gefunden!" fi echo "" # Prüfe Umgebungsvariablen (wichtige) echo "🔐 Wichtige Umgebungsvariablen:" echo "----------------------------------------" docker exec hoerdle env | grep -E "DATABASE_URL|NODE_ENV|PORT|HOSTNAME" || echo "Keine gefunden" echo "" # Prüfe ob Next.js Server läuft echo "🌐 Next.js Prozess-Status:" echo "----------------------------------------" docker exec hoerdle ps aux | grep -E "node|next" | grep -v grep || echo "Keine Next.js Prozesse gefunden" echo "" # Netzwerk-Verbindung prüfen echo "🌐 Netzwerk-Verbindungen:" echo "----------------------------------------" docker network inspect hoerdle_default --format='{{range .Containers}}{{.Name}}: {{.IPv4Address}}{{"\n"}}{{end}}' 2>/dev/null || echo "Netzwerk nicht gefunden" echo "" # Caddy Status (falls vorhanden) if docker ps | grep -q "hoerdle-caddy"; then echo "🚪 Caddy-Container Status:" echo "----------------------------------------" docker logs --tail=20 hoerdle-caddy 2>&1 | tail -20 echo "" fi echo "==================================" echo "✅ Debug-Informationen gesammelt" echo "" echo "💡 Nächste Schritte:" echo "1. Prüfe die Fehler-Logs oben" echo "2. Prüfe ob die Datenbank erreichbar ist" echo "3. Prüfe ob alle Umgebungsvariablen gesetzt sind" echo "4. Bei weiteren Problemen: docker logs hoerdle --tail=200"