jamulix-homepage/deploy_to_production.sh
dschlueter f01ce510f6 Deploy: favicon.ico im Webroot, Programmierer.png aus public/ entfernt
Browser fragen /favicon.ico ab — die Deploy-Skripte setzen jetzt einen
Symlink auf landingpage/favicon.ico. Programmierer.png liegt jetzt in
components/assets/ (statischer Import), damit der Export keine
ungenutzte 1,6-MB-Kopie mehr nach landingpage/ legt. README angepasst.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-08 14:46:29 +02:00

45 lines
1.9 KiB
Shell
Executable file

#!/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 symbolischen Link: index.html → landingpage/index.html"
ssh -S "$SSH_SOCKET" "$REMOTE_USER@$REMOTE_HOST" "rm -f '$REMOTE_DIR/index.html' && ln -s landingpage/index.html '$REMOTE_DIR/index.html'"
echo "Setze symbolischen Link: favicon.ico → landingpage/favicon.ico"
ssh -S "$SSH_SOCKET" "$REMOTE_USER@$REMOTE_HOST" "rm -f '$REMOTE_DIR/favicon.ico' && ln -s landingpage/favicon.ico '$REMOTE_DIR/favicon.ico'"
# Next.js lädt unter / die RSC-Segmente ohne basePath (/__next.*.txt) — ebenfalls verlinken
echo "Setze symbolische Links: __next.*.txt → landingpage/__next.*.txt"
ssh -S "$SSH_SOCKET" "$REMOTE_USER@$REMOTE_HOST" "cd '$REMOTE_DIR' && rm -f __next.*.txt && for f in landingpage/__next.*.txt; do ln -s \$f \$(basename \$f); done"
echo "Kopiere Fehlerseiten: landingpage/<code>.html → <code>.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"