#!/bin/bash # Deployment-Skript für jamulix.de set -e REMOTE_USER="${USER}" REMOTE_HOST="jamulix.de" REMOTE_DIR="/var/www/jamulix.de/html" LOCAL_DIR="/home/dschlueter/neue_jamulix.de_landing_page/jamulix.de_webpage_2" SSH_SOCKET="/tmp/ssh-jamulix-deploy-$$" ERROR_PAGES="401 403 404 500 502 503 504" cleanup() { ssh -S "$SSH_SOCKET" -O exit "$REMOTE_USER@$REMOTE_HOST" 2>/dev/null || true } trap cleanup EXIT echo "Starte Deployment auf $REMOTE_HOST..." # Einmalige Authentifizierung — alle folgenden SSH/rsync-Aufrufe nutzen diesen Socket ssh -M -S "$SSH_SOCKET" -o "ControlPersist=5m" -fN "$REMOTE_USER@$REMOTE_HOST" cd "$LOCAL_DIR" echo "Baue die Seite..." npm run build echo "Synchronisiere landingpage/ nach $REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/landingpage/..." rsync -av --delete -e "ssh -S $SSH_SOCKET" landingpage/ "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/landingpage/" echo "Setze Weiterleitung: index.html → /landingpage/" # rm zuerst: ein alter Symlink würde sonst landingpage/index.html überschreiben ssh -S "$SSH_SOCKET" "$REMOTE_USER@$REMOTE_HOST" "rm -f '$REMOTE_DIR/index.html'" rsync -av -e "ssh -S $SSH_SOCKET" webroot/index.html "$REMOTE_USER@$REMOTE_HOST:$REMOTE_DIR/index.html" echo "Kopiere Fehlerseiten: landingpage/.html → .html" ssh -S "$SSH_SOCKET" "$REMOTE_USER@$REMOTE_HOST" "for c in $ERROR_PAGES; do cp '$REMOTE_DIR'/landingpage/\$c.html '$REMOTE_DIR'/\$c.html; done" echo "" echo "Deployment abgeschlossen: https://jamulix.de"