#!/bin/bash
# Script zum Erneuern/Löschen und Neu-Erstellen von Caddy-Zertifikaten

set -e

echo "🔄 Caddy-Zertifikat-Erneuerung"
echo ""
echo "⚠️  WICHTIG: Dieses Script wird die Zertifikate löschen und Caddy zwingen, sie neu zu erstellen."
echo ""

# Prüfe ob Caddy-Container läuft
if ! docker ps | grep -q hoerdle-caddy; then
    echo "❌ Caddy-Container läuft nicht!"
    echo "   Starte ihn mit: docker compose -f docker-compose.caddy.yml --profile production up -d"
    exit 1
fi

echo "📋 Verfügbare Optionen:"
echo "   1) Alle Zertifikate löschen und neu erstellen (empfohlen bei Problemen)"
echo "   2) Nur Zertifikat für xn--hrdle-jua.de löschen (Punycode-Domain)"
echo "   3) Nur Zertifikat für hoerdle.de löschen"
echo "   4) Abbrechen"
echo ""
read -p "Wähle eine Option (1-4): " choice

case $choice in
    1)
        echo ""
        echo "🗑️  Lösche ALLE Zertifikate..."
        docker exec hoerdle-caddy rm -rf /data/caddy/certificates/acme-v02.api.letsencrypt.org-directory/* 2>/dev/null || true
        echo "✅ Alle Zertifikate gelöscht"
        ;;
    2)
        echo ""
        echo "🗑️  Lösche Zertifikat für xn--hrdle-jua.de..."
        docker exec hoerdle-caddy find /data/caddy/certificates -name "*xn--hrdle-jua.de*" -delete 2>/dev/null || true
        docker exec hoerdle-caddy find /data/caddy/certificates -name "*xn--*" -delete 2>/dev/null || true
        echo "✅ Zertifikat für Punycode-Domain gelöscht"
        ;;
    3)
        echo ""
        echo "🗑️  Lösche Zertifikat für hoerdle.de..."
        docker exec hoerdle-caddy find /data/caddy/certificates -name "*hoerdle.de*" ! -name "*xn--*" -delete 2>/dev/null || true
        echo "✅ Zertifikat für hoerdle.de gelöscht"
        ;;
    4)
        echo "❌ Abgebrochen."
        exit 0
        ;;
    *)
        echo "❌ Ungültige Option. Abgebrochen."
        exit 1
        ;;
esac

echo ""
echo "🔄 Starte Caddy-Container neu, um Zertifikate neu zu erstellen..."
docker compose -f docker-compose.caddy.yml --profile production restart caddy

echo ""
echo "⏳ Warte 5 Sekunden, damit Caddy startet..."
sleep 5

echo ""
echo "📋 Prüfe Caddy-Logs auf Zertifikats-Erstellung:"
echo ""
docker logs hoerdle-caddy --tail=30 2>&1 | grep -i -E "(certificate|tls|acme|challenge|error|success)" || echo "   (Keine relevanten Log-Einträge in den letzten 30 Zeilen)"

echo ""
echo "✅ Container wurde neu gestartet."
echo ""
echo "💡 Nächste Schritte:"
echo "   1. Warte 1-2 Minuten, damit Caddy die Zertifikate erstellt"
echo "   2. Prüfe die Logs: docker logs hoerdle-caddy -f"
echo "   3. Prüfe den Status: ./scripts/check-caddy-certificates.sh"
echo "   4. Teste die Domain: curl -I https://xn--hrdle-jua.de"
echo ""
echo "⚠️  Falls das Zertifikat nicht erstellt wird:"
echo "   - Prüfe DNS-Einträge: Beide Domains müssen auf die Server-IP zeigen"
echo "   - Prüfe Port 80: Muss von außen erreichbar sein (für HTTP-01 Challenge)"
echo "   - Prüfe Firewall: Ports 80 und 443 müssen offen sein"
echo "   - Prüfe Caddy-Logs: docker logs hoerdle-caddy"

