Files
memind/docs/release-deploy.md
T

3.5 KiB
Raw Blame History

Memind Portal 生产更新发布指南

2026-06-26 起,103 / Studio 正式禁止 rsync 发布。
Portal 生产必须是无源码 runtime 模式,唯一合法入口是 bash scripts/release-portal-runtime-prod.sh。 每次发包前先读:发包必看

当前规则

  1. 构建只发生在本机 Macnode scripts/build-portal-runtime.mjs
  2. 103 只接收 .runtime/portal/ 打出来的 artifact,不直接覆盖源码树。
  3. 103 在切换前必须做 Memind 全量备份,并单独备份持久目录。
  4. 103 禁止 npm installnpm run build、在线改源码后继续运行。
  5. 切换后必须通过 Portal 健康检查;失败立即回滚。

补充:

  • 103 / Studio runtime 发布入口:bash scripts/release-portal-runtime-prod.sh
  • 105 runtime 发布入口:bash scripts/release-portal-runtime-105.sh
  • 两者都必须是 runtime artifact,不要直接发源码树
  • 105103 的关键差异是: 105 为 Linux 环境,不要携带本机 Mac 的 node_modules;应在 105 切换前本机执行 npm install --omit=dev --no-package-lock

唯一入口

bash scripts/release-portal-runtime-prod.sh --dry-run
bash scripts/release-portal-runtime-prod.sh

如果目标环境是 105

bash scripts/release-portal-runtime-105.sh --dry-run
bash scripts/release-portal-runtime-105.sh --yes

产物发布流程

  1. 本地 commit 当前改动。
  2. 本机构建 runtimenode scripts/build-portal-runtime.mjs(发布脚本默认会自动执行)。
  3. 校验 artifact 至少包含:server.mjsmindspace-sandbox-mcp.mjsdist/scripts/run-memind-portal-prod.sh
  4. 本地生成 memind-portal-runtime-<release-id>.tar.gz 和发布清单。
  5. 通过 scp 上传到 103 的 incoming/memind-portal-runtime/
  6. 103 备份当前 /Users/john/Project/Memind 全目录 + 持久目录。
  7. 停止旧 Portal,解包 runtime artifact 到新的 live 目录,继承 .env / MindSpace/ / data/ / users/ / .tailscale/ / public/plaza-covers/ / logs/
  8. 更新 LaunchAgent 指向 ${APP_DIR}/scripts/run-memind-portal-prod.sh
  9. 启动 Portal,检查 127.0.0.1:8081/api/status 为 200。
  10. 旧源码 live 目录移入 archives/,线上不再保留可运行源码树。

105 runtime 发布差异

105 当前不是 launchd,而是 systemd 服务:

goose-h5.service
WorkingDirectory=/root/tkmind_go/ui/h5
EnvironmentFile=/root/tkmind_go/ui/h5/.env
ExecStart=/opt/node/bin/node /root/tkmind_go/ui/h5/server.mjs

所以 105 发布时要额外满足:

  1. 保留 .env / MindSpace/ / data/ / users/ / logs/ / public/plaza-covers/
  2. 远端切换前在新的 runtime 目录执行 Linux 依赖安装
  3. 最终用 systemctl restart goose-h5 拉起服务
  4. 健康检查目标是 http://127.0.0.1:8080/api/status

禁止事项

  • 禁止 rsync_to_server.sh
  • 禁止 bash scripts/release-prod.sh(源码包发布已停用)
  • 禁止手工拖文件覆盖 103
  • 禁止在 103 直接改源码后继续跑
  • 禁止 SSH 到 105 直接改业务源码(含 scripts/wechat-mp-menu.mjs);见 105 服务器变更规范
  • 禁止跳过备份和健康检查

相关文档