chore: checkpoint admin restore state

This commit is contained in:
john
2026-06-30 20:26:33 +08:00
parent f2172322fd
commit f9a7584ad4
63 changed files with 7555 additions and 1030 deletions
+35 -7
View File
@@ -16,6 +16,24 @@ command -v node >/dev/null 2>&1 || { echo "❌ 未找到 node" >&2; exit 1; }
cd "${ROOT}"
if [[ -f "${ROOT}/.env" ]]; then
set -a
# shellcheck disable=SC1091
source "${ROOT}/.env"
set +a
fi
BASE_PATH="${VITE_BASE_PATH:-/ops}"
if [[ "${BASE_PATH}" != */ ]]; then
BASE_PATH="${BASE_PATH}/"
fi
API_HOST="${ADM_API_HOST:-127.0.0.1}"
WEB_HOST="${ADM_WEB_HOST:-${API_HOST}}"
export ADM_API_HOST="${API_HOST}"
export ADM_WEB_HOST="${WEB_HOST}"
export ADM_PORT="${PORT}"
export VITE_BASE_PATH="${BASE_PATH%/}"
if [[ ! -d dist ]]; then
echo "${ROOT}/dist 不存在,请先构建或 rsync dist" >&2
exit 1
@@ -27,13 +45,20 @@ if [[ ! -d node_modules ]]; then
fi
echo "==> 停止旧进程 (port ${PORT}, ${API_PORT})..."
if [[ -f "${PID_FILE}" ]]; then
kill "$(cat "${PID_FILE}")" 2>/dev/null || true
fi
if [[ -f "${API_PID_FILE}" ]]; then
kill "$(cat "${API_PID_FILE}")" 2>/dev/null || true
fi
lsof -ti "TCP:${PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill 2>/dev/null || true
lsof -ti "TCP:${API_PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill 2>/dev/null || true
sleep 1
sleep 2
lsof -ti "TCP:${PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill -9 2>/dev/null || true
lsof -ti "TCP:${API_PORT}" -sTCP:LISTEN 2>/dev/null | xargs kill -9 2>/dev/null || true
sleep 1
echo "==> 启动 Admin API @ 127.0.0.1:${API_PORT}..."
echo "==> 启动 Admin API @ ${API_HOST}:${API_PORT}..."
nohup node server/index.mjs >>"${API_LOG}" 2>&1 &
echo $! >"${API_PID_FILE}"
sleep 2
@@ -44,14 +69,17 @@ if ! curl -sf "http://127.0.0.1:${API_PORT}/health" >/dev/null; then
exit 1
fi
echo "==> 启动 vite preview @ 127.0.0.1:${PORT}..."
nohup npm run dev:preview -- --host 127.0.0.1 --port "${PORT}" >>"${LOG}" 2>&1 &
echo "==> 启动 vite preview @ ${WEB_HOST}:${PORT} (base=${BASE_PATH})..."
nohup npx vite preview --config scripts/vite-preview.config.mjs >>"${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"
preview_url="http://127.0.0.1:${PORT}${BASE_PATH}"
login_probe="http://127.0.0.1:${PORT}/auth/status"
if curl -sf "${preview_url}" >/dev/null && curl -sf "${login_probe}" >/dev/null; then
echo "✅ memind_adm 已就绪: ${preview_url}"
curl -sf "${preview_url}" >/dev/null && echo " 首页 OK"
echo " /auth 反代 OK"
echo " 登录请使用数据库中已初始化的 admin 账号"
else
echo "❌ 启动失败,最近日志:" >&2