40 lines
1.1 KiB
Bash
40 lines
1.1 KiB
Bash
#!/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 <<EOF
|
|
set -euo pipefail
|
|
mkdir -p "$REMOTE_DIR/backups/$STAMP"
|
|
cp -f "$REMOTE_DIR/app.js" "$REMOTE_DIR/backups/$STAMP/app.js.bak" 2>/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 <<EOF
|
|
set -euo pipefail
|
|
cat > "$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
|