680e2c9427
Provide rsync deploy and restart tooling for the 100 server, document the workflow, and add pagination plus user filtering across billing and user management pages. Co-authored-by: Cursor <cursoragent@cursor.com>
44 lines
1.3 KiB
Bash
Executable File
44 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# 在 100 服务器上重启 memind_adm(vite preview + API 反代)
|
||
set -euo pipefail
|
||
|
||
ROOT="${ADM_ROOT:-/Users/john/Project/memind_adm}"
|
||
PORT="${ADM_PORT:-5174}"
|
||
NODE_PATH="${LAN_NODE_PATH:-/opt/homebrew/opt/node@22/bin:/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin}"
|
||
LOG="${ROOT}/adm-preview.log"
|
||
PID_FILE="${ROOT}/.adm-preview.pid"
|
||
|
||
export PATH="${NODE_PATH}:${PATH}"
|
||
command -v node >/dev/null 2>&1 || { echo "❌ 未找到 node" >&2; exit 1; }
|
||
|
||
cd "${ROOT}"
|
||
|
||
if [[ ! -d dist ]]; then
|
||
echo "❌ ${ROOT}/dist 不存在,请先构建或 rsync dist" >&2
|
||
exit 1
|
||
fi
|
||
|
||
if [[ ! -d node_modules ]]; then
|
||
echo "==> 安装依赖..."
|
||
npm install
|
||
fi
|
||
|
||
echo "==> 停止旧进程 (port ${PORT})..."
|
||
lsof -ti "TCP:${PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill 2>/dev/null || true
|
||
sleep 1
|
||
lsof -ti "TCP:${PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill -9 2>/dev/null || true
|
||
|
||
echo "==> 启动 vite preview @ 127.0.0.1:${PORT}..."
|
||
nohup npm run preview -- --host 127.0.0.1 --port "${PORT}" >>"${LOG}" 2>&1 &
|
||
echo $! >"${PID_FILE}"
|
||
sleep 2
|
||
|
||
if curl -sf "http://127.0.0.1:${PORT}/" >/dev/null; then
|
||
echo "✅ memind_adm 已就绪: http://127.0.0.1:${PORT}/"
|
||
curl -sf "http://127.0.0.1:${PORT}/" >/dev/null && echo " 首页 OK"
|
||
else
|
||
echo "❌ 启动失败,最近日志:" >&2
|
||
tail -n 40 "${LOG}" >&2 || true
|
||
exit 1
|
||
fi
|