#!/usr/bin/env bash # Hocks Mieterportal – Deploy auf hocks.eu (Workflow aus dem Schulportal) # # 1. npm run build 2. Paket (dist + compose + nginx) per pscp hochladen # 3. Entpacken nach /opt/mieterportal, Container mp-portal neu starten # # Voraussetzungen: Pageant mit priv_ionos_hocks_vps.ppk läuft. # Aufruf: ./deploy.sh set -euo pipefail SERVER="root@hocks.eu" PORT=38592 HOSTKEY="SHA256:4G3UxsugNkHH6BrPXScLXh+vX8P1sLgWKn8cZBKSRxw" KEY="Z:\Devel\ssh\priv_ionos_hocks_vps.ppk" PSCP="/c/Program Files/PuTTY/pscp.exe" PLINK="/c/Program Files/PuTTY/plink.exe" REMOTE_DIR="/opt/mieterportal" echo "==> 1/4 Frontend bauen" npm run build echo "==> 2/4 Paket erstellen und hochladen" rm -rf tmp-deploy && mkdir -p tmp-deploy/docker cp -r dist tmp-deploy/dist cp docker-compose.yml tmp-deploy/ cp docker/nginx.conf tmp-deploy/docker/ tar -czf mp-dist.tar.gz -C tmp-deploy . rm -rf tmp-deploy "$PSCP" -batch -hostkey "$HOSTKEY" -i "$KEY" -P "$PORT" \ mp-dist.tar.gz "$SERVER":/tmp/mp-dist.tar.gz rm -f mp-dist.tar.gz echo "==> 3/4 Auf Server entpacken und Container ersetzen" "$PLINK" -batch -hostkey "$HOSTKEY" -i "$KEY" -P "$PORT" "$SERVER" " mkdir -p $REMOTE_DIR && tar -xzf /tmp/mp-dist.tar.gz -C $REMOTE_DIR && rm -f /tmp/mp-dist.tar.gz && cd $REMOTE_DIR && docker compose up -d " echo "==> 4/4 Status prüfen" "$PLINK" -batch -hostkey "$HOSTKEY" -i "$KEY" -P "$PORT" "$SERVER" " docker ps --filter name=mp-portal --format 'table {{.Names}}\t{{.Status}}' && curl -s https://mieterportal.hocks.eu/ | grep -o 'index-[^\"]*\.js' | head -1 " echo "Fertig: https://mieterportal.hocks.eu"