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

46 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 模拟部署与最新构建
## 已确认要求
- 源码继续放在 `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
powershell.exe -NoProfile -ExecutionPolicy Bypass -File deploy/deploy-runtime.ps1
```
完成运行数据迁移后,启动前后端:
```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File deploy/start-dev.ps1 -Service all
```
后端启动总是先完整编译、部署和校验。单独启动前端会校验当前源码与部署产物,不允许搭配过期后端。缺少迁移后的配置、账号库或密钥时拒绝启动,不会创建另一份空库。
构建收据保存在 `out/build-state.json`,不混入部署根目录。已有程序被覆盖前备份至 `out/deployment-history/`。历史前端编译目录归档至 `out/build-history/`,不删除生成物,也不将历次散列资源重复嵌入新程序。
## 验收边界
构建通过不代表目录迁移、登录持久化、插件、TLS 和管理员恢复通道均已验收。迁移完成前,不能使用旧布局的测试结果证明新布局正确。