Smail/docs/模拟部署与最新构建.md
smail d7837de561
Some checks are pending
Security Checks / security (push) Waiting to run
保存模拟部署迁移与最新构建校验阶段成果
2026-09-08 18:33:21 +08:00

2.3 KiB
Raw Blame History

模拟部署与最新构建

已确认要求

  • 源码继续放在 backend/、frontend/。
  • 生产、开发模拟部署均使用 yunx-test/,禁止把 out/ 当运行目录。
  • 配置固定为 config/ 中的五个 JSON;证书及加密密钥归 ssl/;数据库归 data/;日志归 log/。
  • 保留独立的 smail、smail-admin。Windows 使用 .exe 后缀。
  • 前端开发仍使用原源码目录的 Vite 热更新。
  • 不清空现有业务库,不删除原证书、密钥及历史备份。

当前任务状态

  • [✓] 修改前的文档基线已提交并推送。
  • [✓] 源码指纹和产物 SHA-256 校验已加入构建、部署入口。
  • [x] 开发启动入口固定使用 yunx-test,移除跳过编译选项,等待迁移后运行复审。
  • [x] Vite 仅在服务端从 yunx-test/config 读取域名、证书引用,等待真实页面复审。
  • [~] 完整构建、最新产物部署和回归验证。
  • [ ] 配置事务与历史备份改存状态数据库。
  • [ ] 密钥、TLS、DKIM、ACME 和审计日志迁到最终目录。
  • [ ] 内置插件合并进发布产物并保持隔离机制。
  • [ ] 停服备份、无损迁移到 yunx-test。
  • [ ] 新目录开发、生产模拟运行和浏览器验收。

已实现入口

完整构建并部署二进制,不覆盖配置和数据库:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File deploy/deploy-runtime.ps1

完成运行数据迁移后,启动前后端:

powershell.exe -NoProfile -ExecutionPolicy Bypass -File deploy/start-dev.ps1 -Service all

后端启动总是先完整编译、部署和校验。单独启动前端会校验当前源码与部署产物,不允许搭配过期后端。缺少迁移后的配置、账号库或密钥时拒绝启动,不会创建另一份空库。

构建收据保存在 out/build-state.json,不混入部署根目录。已有程序被覆盖前备份至 out/deployment-history/。历史前端编译目录归档至 out/build-history/,不删除生成物,也不将历次散列资源重复嵌入新程序。

验收边界

构建通过不代表目录迁移、登录持久化、插件、TLS 和管理员恢复通道均已验收。迁移完成前,不能使用旧布局的测试结果证明新布局正确。