#!/bin/bash set -e # --- PARAMETER-PRÜFUNG --- if [ $# -lt 2 ]; then echo "❌ Fehler: Fehlende Argumente." echo "Verwendung: $0 " echo "Beispiel: $0 afu 100.64.0.4" exit 1 fi PI_USER="$1" PI_HOST="$2" TARGET_DIR="spannung/app" SERVICE_NAME="spannung.service" echo "🚀 Starte Deployment auf $PI_USER@$PI_HOST..." # --- ZERTIFIKATE ERZEUGEN --- # Prüfen, ob die Zertifikate bereits im lokalen app-Ordner existieren if [ ! -f ./app/cert.pem ] || [ ! -f ./app/key.pem ]; then echo "🔐 Generiere selbstsignierte SSL-Zertifikate für HTTPS..." openssl req -x509 -newkey rsa:4096 -nodes \ -keyout ./app/key.pem \ -out ./app/cert.pem \ -days 365 \ -subj "/C=DE/ST=Bavaria/L=Koeditz/O=info@lang-dieter.de/CN=$PI_HOST" 2>/dev/null echo "✅ SSL-Zertifikate lokal in ./app/ erstellt." else echo "🔒 Bestehende SSL-Zertifikate in ./app/ gefunden. Werden wiederverwendet." fi # 1. Altes Zielverzeichnis auf dem Pi löschen und frisch erstellen ssh "$PI_USER@$PI_HOST" "rm -rf \"\$HOME/$TARGET_DIR\" && mkdir -p \"\$HOME/$TARGET_DIR\"" # 2. Den INHALT des lokal fertig gebauten 'app'-Ordners (inkl. Zertifikate) zum Pi kopieren echo "📦 Übertrage vorkompilierte Anwendung, Webseiten und Zertifikate..." scp -r ./app/* "$PI_USER@$PI_HOST:$TARGET_DIR/" # 3. Das Setup-Skript direkt auf dem Pi ausführen ssh -t "$PI_USER@$PI_HOST" " cd \${HOME}/${TARGET_DIR} # Windows-Zeilenumbrüche zur Sicherheit entfernen sed -i 's/\r//' ./install.sh sed -i 's/\r//' ./${SERVICE_NAME} # Das Installationsskript auf dem Pi ausführen ./install.sh " echo "✅ Deployment erfolgreich abgeschlossen! Zeige Live-Logs (Beenden mit STRG+C)..." ssh -t "$PI_USER@$PI_HOST" "sudo journalctl -f -u ${SERVICE_NAME}"