#!/usr/bin/env bash # Build viewer for production and restart PM2 process. # Usage: ./scripts/deploy-viewer.sh [--skip-install] set -euo pipefail ROOT="$(cd "$(dirname "$0")/.." && pwd)" VIEWER="$ROOT/viewer-frontend" SKIP_INSTALL=0 for arg in "$@"; do case "$arg" in --skip-install) SKIP_INSTALL=1 ;; esac done cd "$VIEWER" if [[ "$SKIP_INSTALL" -eq 0 ]]; then npm ci --prefer-offline fi npm run build cd "$ROOT" if pm2 describe punimtag-viewer >/dev/null 2>&1; then # Recreate so script-args / NODE_ENV changes in ecosystem.config.js take effect. pm2 delete punimtag-viewer fi pm2 start ecosystem.config.js --only punimtag-viewer pm2 save echo "Viewer deployed (next start). Logs: pm2 logs punimtag-viewer --lines 30"