Worldshaper/scripts/vps-post-receive.sample.sh

52 lines
1.5 KiB
Bash
Raw Normal View History

2026-06-26 18:18:14 -04:00
#!/usr/bin/env bash
set -euo pipefail
2026-06-26 20:30:30 -04:00
APP_DIR="/srv/worldshaper/app"
GIT_DIR="/srv/worldshaper/repo.git"
CONTENT_ROOT="/srv/worldshaper/shared/content"
ENV_FILE="/srv/worldshaper/shared/worldshaper.env"
2026-06-26 18:18:14 -04:00
PORT="5180"
2026-06-26 20:30:30 -04:00
APP_NAME="worldshaper"
2026-06-26 18:18:14 -04:00
if [ -f "$ENV_FILE" ]; then
echo "[deploy] load env"
set -a
# shellcheck disable=SC1090
. "$ENV_FILE"
set +a
fi
2026-06-26 18:18:14 -04:00
echo "[deploy] checkout"
git --work-tree="$APP_DIR" --git-dir="$GIT_DIR" checkout -f
cd "$APP_DIR"
echo "[deploy] install"
npm install
echo "[deploy] validate"
npm run validate:content
echo "[deploy] build"
npm run build
echo "[deploy] restart"
CONTENT_ROOT="$CONTENT_ROOT" \
PORT="$PORT" \
REQUEST_ANALYZER_AUTORUN="${REQUEST_ANALYZER_AUTORUN:-1}" \
REQUEST_ANALYZER_PROVIDER="${REQUEST_ANALYZER_PROVIDER:-deepseek}" \
REQUEST_ANALYZER_MODEL="${REQUEST_ANALYZER_MODEL:-deepseek-v4-flash}" \
REQUEST_ANALYZER_PROMOTE_THRESHOLD="${REQUEST_ANALYZER_PROMOTE_THRESHOLD:-0.85}" \
REQUEST_ANALYZER_THINKING="${REQUEST_ANALYZER_THINKING:-disabled}" \
DEEPSEEK_API_KEY="${DEEPSEEK_API_KEY:-}" \
pm2 restart "$APP_NAME" --update-env || \
CONTENT_ROOT="$CONTENT_ROOT" \
PORT="$PORT" \
REQUEST_ANALYZER_AUTORUN="${REQUEST_ANALYZER_AUTORUN:-1}" \
REQUEST_ANALYZER_PROVIDER="${REQUEST_ANALYZER_PROVIDER:-deepseek}" \
REQUEST_ANALYZER_MODEL="${REQUEST_ANALYZER_MODEL:-deepseek-v4-flash}" \
REQUEST_ANALYZER_PROMOTE_THRESHOLD="${REQUEST_ANALYZER_PROMOTE_THRESHOLD:-0.85}" \
REQUEST_ANALYZER_THINKING="${REQUEST_ANALYZER_THINKING:-disabled}" \
DEEPSEEK_API_KEY="${DEEPSEEK_API_KEY:-}" \
pm2 start server.js --name "$APP_NAME"