46 lines
2.3 KiB
Markdown
46 lines
2.3 KiB
Markdown
# 模拟部署与最新构建
|
||
|
||
## 已确认要求
|
||
|
||
- 源码继续放在 `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 和管理员恢复通道均已验收。迁移完成前,不能使用旧布局的测试结果证明新布局正确。
|