#!/bin/bash set -euo pipefail REMOTE="gavin@biboer.cn" PORT="21174" REMOTE_DIR="/home/gavin/note2any-wx-server" STAMP="$(date +%Y%m%d-%H%M%S)" npm run build:server ssh -p "$PORT" "$REMOTE" bash -s </dev/null || true cp -f "$REMOTE_DIR/package.json" "$REMOTE_DIR/backups/$STAMP/package.json.bak" 2>/dev/null || true cp -f "$REMOTE_DIR/ecosystem.config.js" "$REMOTE_DIR/backups/$STAMP/ecosystem.config.js.bak" 2>/dev/null || true EOF scp -P "$PORT" -r \ "server/dist" \ "server/package.json" \ "server/README.md" \ "$REMOTE:$REMOTE_DIR/" ssh -p "$PORT" "$REMOTE" bash -s < "$REMOTE_DIR/app.js" <<'APP' require("./dist/index.js"); APP pkill -f "node $REMOTE_DIR/app.js" 2>/dev/null || true pkill -f "node $REMOTE_DIR/dist/index.js" 2>/dev/null || true cd "$REMOTE_DIR" set -a [ -f ./.env ] && . ./.env set +a nohup node app.js > server.log 2>&1 & sleep 1 ps -ef | grep -E "node .*note2any-wx-server/(app|dist/index)\\.js" | grep -v grep EOF