diff --git a/scripts/fast-deploy.sh b/scripts/fast-deploy.sh new file mode 100755 index 0000000..202ad71 --- /dev/null +++ b/scripts/fast-deploy.sh @@ -0,0 +1,50 @@ +#!/usr/bin/env bash +# Fast deploy for LeoCRM. +# Usage: +# bash scripts/fast-deploy.sh frontend # Frontend-only: build + copy (~20s) +# bash scripts/fast-deploy.sh full # Full: Coolify rebuild (~2min) +# Default: frontend + +set -euo pipefail + +SERVER="root@46.225.91.159" +SSH_KEY="${SSH_KEY:-/a0/usr/workdir/.ssh/coolify-01-root}" +SSH_OPTS="-o StrictHostKeyChecking=no -i $SSH_KEY" +MODE="${1:-frontend}" + +cd /a0/usr/workdir/leocrm-fix + +if [ "$MODE" = "full" ]; then + echo "[Full Deploy] Triggering Coolify rebuild..." + COOLIFY_API_TOKEN='2|UnMMp2WYbXFJCrOuZ1yqSK96hMooPTAfAJPIXiQc1e47154e' \ + COOLIFY_APP_UUID='stvabl4vaqru7jclx4ittzr3' \ + COOLIFY_BASE_URL='https://server.media-on.de' \ + SSH_KEY="$SSH_KEY" \ + SERVER_IP='46.225.91.159' \ + /opt/venv/bin/python scripts/deploy.py + exit 0 +fi + +# Frontend-only fast deploy +echo "[1/5] Building frontend..." +cd frontend +npm run build 2>&1 | tail -3 + +echo "[2/5] Finding container..." +CONTAINER=$(ssh $SSH_OPTS $SERVER 'docker ps --format "{{.Names}}" | grep "^stvabl4vaqru7jclx4ittzr3-" | head -1') +if [ -z "$CONTAINER" ]; then + echo "ERROR: Could not find app container" + exit 1 +fi +echo " Container: $CONTAINER" + +echo "[3/5] Packaging & uploading..." +tar czf /tmp/frontend-dist.tar.gz -C dist . +scp $SSH_OPTS /tmp/frontend-dist.tar.gz $SERVER:/tmp/frontend-dist.tar.gz + +echo "[4/5] Copying into container..." +ssh $SSH_OPTS $SERVER "docker cp /tmp/frontend-dist.tar.gz $CONTAINER:/tmp/ && docker exec $CONTAINER sh -c 'cd /app/frontend/dist && tar xzf /tmp/frontend-dist.tar.gz --overwrite && rm -f /tmp/frontend-dist.tar.gz 2>/dev/null || true' && rm -f /tmp/frontend-dist.tar.gz 2>/dev/null || true" + +echo "[5/5] Done! Frontend deployed in ~20s." +echo " No restart needed — static files served directly." +echo " Browser: Strg+Shift+R for hard reload."