auto-deploy-demo/.trae/specs/nginx-dynamic-routing/tasks.md

56 lines
2.5 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.

# Tasks
- [x] Task 1: 创建Nginx配置模板系统
- [x] SubTask 1.1: 创建 `server/templates/nginx/main.conf.tpl` 主配置模板
- [x] SubTask 1.2: 创建 `server/templates/nginx/location.conf.tpl` location配置模板
- [x] SubTask 1.3: 确保模板支持变量替换和SPA路由
- [x] Task 2: 实现Nginx配置管理服务
- [x] SubTask 2.1: 创建 `server/services/nginxManager.js` 服务模块
- [x] SubTask 2.2: 实现配置模板渲染功能
- [x] SubTask 2.3: 实现Nginx配置文件读写功能
- [x] SubTask 2.4: 实现Nginx配置验证功能nginx -t
- [x] SubTask 2.5: 实现Nginx重载功能nginx -s reload
- [x] SubTask 2.6: 实现配置回滚机制
- [x] Task 3: 扩展环境配置
- [x] SubTask 3.1: 在 `server/config/index.js` 添加Nginx相关配置项
- [x] SubTask 3.2: 更新 `.env.example` 添加新配置项说明
- [ ] SubTask 3.3: 实现Nginx可用性检测功能
- [x] Task 4: 修改进程管理服务
- [x] SubTask 4.1: 修改 `processManager.js` 使项目绑定到127.0.0.1
- [x] SubTask 4.2: 修改端口分配逻辑,支持内部端口模式
- [x] SubTask 4.3: 添加Nginx配置更新集成点
- [x] Task 5: 修改项目服务
- [x] SubTask 5.1: 修改 `projectService.js` 的URL生成逻辑
- [x] SubTask 5.2: 在项目创建时生成Nginx location配置
- [x] SubTask 5.3: 在项目删除时清理Nginx配置
- [x] SubTask 5.4: 在项目启动/停止时更新Nginx upstream状态
- [x] Task 6: 修改部署路由
- [x] SubTask 6.1: 修改 `routes/deploy.js` 集成Nginx配置更新
- [x] SubTask 6.2: 添加Nginx配置状态查询接口
- [x] Task 7: 实现本地开发模式兼容
- [x] SubTask 7.1: 实现Nginx环境检测逻辑
- [x] SubTask 7.2: 实现模式自动切换Nginx模式/多端口模式)
- [x] SubTask 7.3: 添加模式状态日志输出
- [x] Task 8: 更新前端适配
- [x] SubTask 8.1: 确认前端正确显示新的URL格式
- [x] SubTask 8.2: 添加Nginx模式状态显示可选
# Task Dependencies
- [Task 2] depends on [Task 1] - Nginx管理服务依赖模板系统
- [Task 4] depends on [Task 2] - 进程管理修改依赖Nginx管理服务
- [Task 5] depends on [Task 2] - 项目服务修改依赖Nginx管理服务
- [Task 6] depends on [Task 4, Task 5] - 路由修改依赖服务和进程管理
- [Task 7] depends on [Task 3] - 本地模式依赖配置扩展
- [Task 8] depends on [Task 5, Task 6] - 前端适配依赖后端完成
# Parallelizable Work
- Task 1 和 Task 3 可以并行执行
- Task 4 和 Task 5 可以在Task 2完成后并行执行