diff --git a/scripts/deploy.sh b/scripts/deploy.sh index 96c60b7..13ea010 100755 --- a/scripts/deploy.sh +++ b/scripts/deploy.sh @@ -134,10 +134,15 @@ if $run_migration; then fi # 3. Build backend (Nitro standalone) — Prisma generate ist Teil des build-scripts -log "Step 3: pnpm --filter rebreak-backend build..." +# RAM-constraint (3.7GB VPS): pm2-Services VOR build stoppen, sonst OOM (exit 134). +# Heap auf 2.5GB erhöhen — sonst hängt nitro build bei 1.5GB mark-compact-loop. +log "Step 3a: pm2 stop staging services (RAM für build freigeben)..." +"${PM2_BIN}" stop rebreak-staging rebreak-admin-staging rebreak-idle-staging 2>/dev/null || true +sleep 2 + +log "Step 3b: pnpm --filter rebreak-backend build..." cd "${APP_DIR}" -# NODE_OPTIONS: max 1.5 GB für den Build-Prozess (4 GB RAM Server) -NODE_OPTIONS="--max-old-space-size=1536" CI=true "${PNPM_BIN}" --filter rebreak-backend build 2>&1 +NODE_OPTIONS="--max-old-space-size=2560" CI=true "${PNPM_BIN}" --filter rebreak-backend build 2>&1 log "Build done" # 4. Atomisches Deploy: .output → .output-staging (relativ zu backend/) @@ -154,16 +159,17 @@ else exit 1 fi -# 5. pm2 restart rebreak-staging (--update-env zieht neue Infisical-secrets) -log "Step 5: pm2 restart rebreak-staging..." -"${PM2_BIN}" restart rebreak-staging --update-env 2>/dev/null || \ +# 5. pm2 start/restart staging-services (--update-env zieht neue Infisical-secrets) +log "Step 5: pm2 start rebreak-staging + rebreak-admin-staging + rebreak-idle-staging..." +"${PM2_BIN}" start rebreak-staging --update-env 2>/dev/null || \ "${PM2_BIN}" start "${REPO_ROOT}/ecosystem.config.js" --only rebreak-staging -log "rebreak-staging restarted" +"${PM2_BIN}" start rebreak-admin-staging --update-env 2>/dev/null || true +"${PM2_BIN}" start rebreak-idle-staging --update-env 2>/dev/null || true +log "staging-services started" # 6. IMAP + DNS Services (optional – kein Fehler wenn nicht vorhanden, Mo's Scope) log "Step 6: Optional services restart..." "${PM2_BIN}" restart rebreak-imap-staging 2>/dev/null || true -"${PM2_BIN}" restart rebreak-idle-staging 2>/dev/null || true "${PM2_BIN}" restart dns-rebreak-staging 2>/dev/null || \ "${PM2_BIN}" start "${REPO_ROOT}/ecosystem.config.js" --only dns-rebreak-staging 2>/dev/null || true "${PM2_BIN}" restart dns-rebreak 2>/dev/null || \