3.3 KiB
3.3 KiB
Memind Portal 生产更新发布指南
2026-06-26 起,103 / Studio 正式禁止
rsync发布。
Portal 生产必须是无源码 runtime 模式,唯一合法入口是bash scripts/release-portal-runtime-prod.sh。
当前规则
- 构建只发生在本机 Mac:
node scripts/build-portal-runtime.mjs。 - 103 只接收
.runtime/portal/打出来的 artifact,不直接覆盖源码树。 - 103 在切换前必须做
Memind全量备份,并单独备份持久目录。 - 103 禁止
npm install、npm run build、在线改源码后继续运行。 - 切换后必须通过 Portal 健康检查;失败立即回滚。
唯一入口
bash scripts/release-portal-runtime-prod.sh --dry-run
bash scripts/release-portal-runtime-prod.sh
产物发布流程
- 本地 commit 当前改动。
- 本机构建 runtime:
node scripts/build-portal-runtime.mjs(发布脚本默认会自动执行)。 - 校验 artifact 至少包含:
server.mjs、mindspace-sandbox-mcp.mjs、dist/、scripts/run-memind-portal-prod.sh。 - 本地生成
memind-portal-runtime-<release-id>.tar.gz和发布清单。 - 通过
scp上传到 103 的incoming/memind-portal-runtime/。 - 103 备份当前
/Users/john/Project/Memind全目录 + 持久目录。 - 停止旧 Portal,解包 runtime artifact 到新的 live 目录,继承
.env/MindSpace//data//users//.tailscale//public/plaza-covers//logs/。 - 更新 LaunchAgent 指向
${APP_DIR}/scripts/run-memind-portal-prod.sh。 - 启动 Portal,检查
127.0.0.1:8081/api/status为 200。 - 旧源码 live 目录移入
archives/,线上不再保留可运行源码树。
发版前收口
正式打 103 Portal 包之前,先确认本地工作区只保留“本次要上线的 Portal 改动”。下面这些内容默认不应并入 Portal 发版:
docker/下的 goosed 本地/生产镜像、compose、README、.env.examplescripts/start-goosed-local.shscripts/verify-goosed-docker.shdocs/goosed-*.mddocs/local-dev.md、README.md中只服务于本地 Goose / Docker 联调的说明*.bak之类临时备份文件.runtime/portal/整个构建产物目录
只有当本次需求明确就是这些文件所对应的模块时,才允许把它们一起带入发版 commit。默认场景下,103 Portal 发版应聚焦于业务代码、运行脚本、数据库变更,以及与本次线上目标直接相关的文档。
bash scripts/release-portal-runtime-prod.sh 现在会在本地预检查阶段直接拦截这些默认应排除的脏改动;只有在你明确知道自己在做什么时,才允许用 ALLOW_PORTAL_RELEASE_SCOPE_BYPASS=1 临时绕过。
禁止事项
- 禁止
rsync_to_server.sh - 禁止
bash scripts/release-prod.sh(源码包发布已停用) - 禁止手工拖文件覆盖 103
- 禁止在 103 直接改源码后继续跑
- 禁止 SSH 到 105 直接改业务源码(含
scripts/wechat-mp-menu.mjs);见 105 服务器变更规范 - 禁止跳过备份和健康检查