#!/usr/bin/env bash # Baut das Portal lokal und spielt es auf den Portal-CT aus. # ./deploy/deploy.sh [root@192.168.1.28] set -euo pipefail TARGET="${1:-root@192.168.1.28}" cd "$(dirname "$0")/.." npm ci npm run build rsync -az --delete \ --include='/dist/***' --include='/scripts/***' --include='/deploy/***' \ --include='/package.json' --include='/package-lock.json' --exclude='*' \ ./ "$TARGET:/opt/hi-portal/" ssh "$TARGET" bash -s <<'REMOTE' set -euo pipefail cd /opt/hi-portal npm ci --omit=dev --no-audit --no-fund chown -R root:root /opt/hi-portal install -m 644 deploy/hi-portal.service /etc/systemd/system/hi-portal.service systemctl daemon-reload systemctl enable hi-portal >/dev/null if grep -q '^OIDC_CLIENT_SECRET=.\+' /etc/hi-portal/portal.env; then systemctl restart hi-portal sleep 2 systemctl --no-pager --lines=5 status hi-portal else echo "Hinweis: /etc/hi-portal/portal.env ist noch nicht vollständig – Dienst nicht gestartet." fi REMOTE