# Memind Portal 生产更新发布指南 > 2026-06-26 起,103 / Studio 正式禁止 `rsync` 发布。 > Portal 生产必须是**无源码 runtime 模式**,唯一合法入口是 `bash scripts/release-portal-runtime-prod.sh`。 ## 当前规则 1. 构建只发生在本机 Mac:`node scripts/build-portal-runtime.mjs`。 2. 103 只接收 `.runtime/portal/` 打出来的 artifact,不直接覆盖源码树。 3. 103 在切换前必须做 `Memind` 全量备份,并单独备份持久目录。 4. 103 **禁止** `npm install`、`npm run build`、在线改源码后继续运行。 5. 切换后必须通过 Portal 健康检查;失败立即回滚。 ## 唯一入口 ```bash bash scripts/release-portal-runtime-prod.sh --dry-run bash scripts/release-portal-runtime-prod.sh ``` ## 产物发布流程 1. 本地 commit 当前改动。 2. 本机构建 runtime:`node scripts/build-portal-runtime.mjs`(发布脚本默认会自动执行)。 3. 校验 artifact 至少包含:`server.mjs`、`mindspace-sandbox-mcp.mjs`、`dist/`、`scripts/run-memind-portal-prod.sh`。 4. 本地生成 `memind-portal-runtime-.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/`,线上不再保留可运行源码树。 ## 发版前收口 正式打 103 Portal 包之前,先确认本地工作区只保留“本次要上线的 Portal 改动”。下面这些内容默认**不应**并入 Portal 发版: - `docker/` 下的 goosed 本地/生产镜像、compose、README、`.env.example` - `scripts/start-goosed-local.sh` - `scripts/verify-goosed-docker.sh` - `docs/goosed-*.md` - `docs/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 服务器变更规范](105-server-operations.md) - 禁止跳过备份和健康检查 ## 相关文档 - [Portal 无源码迁移说明](no-source-portal-migration.md) - [105 服务器变更规范](105-server-operations.md) - [开发环境规则](../DEVELOPMENT_RELEASE_RULES.md) - [测试发布规则](../TEST_RELEASE_RULES.md) - [生产发布规则](../PRODUCTION_RELEASE_RULES.md)