Files
memind_adm/docs/DEPLOY.md
T
john 680e2c9427 Add LAN deploy scripts and improve admin billing/users UX.
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>
2026-06-16 20:46:59 +08:00

3.3 KiB
Raw Blame History

memind_adm 部署与重启

管理后台前端(React + Vite)部署到局域网 100 服务器(Tailscale 100.99.38.66)。

环境概览

默认值
部署目标 john@100.99.38.66:/Users/john/Project/memind_adm
服务端口 5174
运行方式 vite preview(静态资源 + API 反代)
后端 API 远端 .envADM_DEV_BACKEND(默认 http://127.0.0.1:8081
日志 /Users/john/Project/memind_adm/adm-preview.log

前置条件

  1. 本机可 SSH 到 100 服务器(Tailscale 已连接):
    ssh john@100.99.38.66
    
  2. 本机已安装 Node.js,项目依赖已安装(npm install)。
  3. 100 服务器上后端(Memind portal / server.mjs)在 8081 运行,否则页面能打开但登录、API 会失败。

更新部署(推荐)

在本机项目根目录执行:

./scripts/rsync_to_server.sh

脚本会依次:

  1. 本地 npm run build 生成 dist/
  2. rsync 同步源码到远端(排除 node_modules.git.env 等)
  3. 单独同步 dist/
  4. 若远端尚无 .env,写入默认配置(不覆盖已有 .env
  5. 调用 scripts/remote_restart.sh 重启服务

常用参数

# 跳过本地构建(沿用当前 dist/)
./scripts/rsync_to_server.sh --skip-build

# 只同步文件,不重启
./scripts/rsync_to_server.sh --no-restart

# 环境变量覆盖
DEPLOY_HOST=john@100.99.38.66 \
REMOTE_DIR=/Users/john/Project/memind_adm \
ADM_PORT=5174 \
./scripts/rsync_to_server.sh

仅重启服务

代码已在远端、无需重新同步时:

ssh john@100.99.38.66 'ADM_ROOT=/Users/john/Project/memind_adm ADM_PORT=5174 bash -s' \
  < scripts/remote_restart.sh

或在 100 服务器上直接执行:

cd /Users/john/Project/memind_adm
ADM_PORT=5174 ./scripts/remote_restart.sh

重启逻辑:结束占用 5174 的进程 → nohup npm run preview → 检查首页是否返回 200。

验证

本机通过 SSH 检查:

ssh john@100.99.38.66 'curl -sI http://127.0.0.1:5174/ | head -1'
# 期望: HTTP/1.1 200 OK

查看远端日志:

ssh john@100.99.38.66 'tail -f /Users/john/Project/memind_adm/adm-preview.log'

远端配置

编辑远端 .env(首次部署后路径:/Users/john/Project/memind_adm/.env):

# preview 反代目标(/auth、/admin-api、/api
ADM_DEV_BACKEND=http://127.0.0.1:8081

# 「返回对话」跳转地址
VITE_MAIN_APP_URL=http://127.0.0.1:8081

修改 .env 后需重启服务生效。

故障排查

现象 处理
无法 SSH 到 john@100.99.38.66 确认 Tailscale 在线;必要时 ssh-copy-id john@100.99.38.66
首页 200 但登录失败 检查 100 上 8081 后端是否运行
dist 不存在 先在本机 npm run build,或完整执行 ./scripts/rsync_to_server.sh
启动失败 查看 adm-preview.log;确认远端 Node 在 PATH 中(需 Homebrew node@22 等)
端口被占用 remote_restart.sh 会自动 kill 旧进程;仍异常时可手动 lsof -iTCP:5174 -sTCP:LISTEN

相关脚本

脚本 说明
scripts/rsync_to_server.sh 构建 + rsync + 重启(一键部署)
scripts/remote_restart.sh 仅在远端重启 vite preview
scripts/.rsync-exclude-lan rsync 排除规则