53 lines
1.8 KiB
Bash
Executable file
53 lines
1.8 KiB
Bash
Executable file
#!/bin/bash
|
|
set -e
|
|
|
|
# --- PARAMETER-PRÜFUNG ---
|
|
if [ $# -lt 2 ]; then
|
|
echo "❌ Fehler: Fehlende Argumente."
|
|
echo "Verwendung: $0 <user> <host>"
|
|
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}"
|