本文引用的文件
本文件面向AI有声书生成平台,提供覆盖开发、测试、生产的多环境部署策略与实施指南。内容涵盖:
该仓库包含后端服务、前端应用、部署脚本与Nginx/Docker配置。关键部署相关目录与文件如下:
文档:DEPLOY.md、DEPLOY_PROD.md、AUTO_DEPLOY.md
graph TB
A["开发环境<br/>本地/容器"] --> B["测试环境<br/>测试服务器"]
B --> C["生产环境<br/>线上服务器"]
A --> D["构建产物<br/>server/dist, frontend/build/h5"]
D --> E["部署脚本<br/>deploy.sh / deploy-prod.sh"]
E --> F["PM2 进程管理<br/>server"]
F --> G["Nginx 反向代理<br/>book.rrbrr.com / bookapi.rrbrr.com"]
G --> H["后端服务<br/>监听端口"]
G --> I["静态资源<br/>前端H5"]
图表来源
章节来源
章节来源
多环境部署采用“脚本驱动 + 反向代理 + 进程管理”的组合模式,支持一键部署与Webhook触发部署。
graph TB
Dev["开发者"] --> SCM["代码仓库(Gogs/GitHub)"]
SCM --> WH["Webhook 接收器<br/>webhook-deploy.py"]
WH --> Deploy["部署脚本<br/>deploy.sh / deploy-prod.sh"]
Deploy --> Build["构建产物<br/>server/dist, frontend/build/h5"]
Build --> PM2["PM2 进程管理"]
PM2 --> Nginx["Nginx 反向代理"]
Nginx --> API["后端API"]
Nginx --> FE["前端静态资源"]
图表来源
模型管理
统一列出vendors/models,按类型过滤启用模型,支持自动切换
flowchart TD
Start(["启动"]) --> LoadEnv["加载 .env"]
LoadEnv --> ReadModels["读取 models.json"]
ReadModels --> MergeCfg["合并默认配置与环境变量"]
MergeCfg --> Export["导出 config 对象"]
Export --> End(["运行"])
图表来源
章节来源
章节来源
章节来源
章节来源
替代方案
无Python环境时,可用Git post-receive hook + Nginx + Bash脚本实现
sequenceDiagram
participant Dev as "开发者"
participant Gogs as "Gogs 仓库"
participant Nginx as "Nginx"
participant WH as "webhook-deploy.py"
participant Script as "deploy.sh"
participant PM2 as "PM2"
participant Srv as "后端服务"
Dev->>Gogs : 推送代码
Gogs->>Nginx : 触发 /webhook
Nginx->>WH : 转发请求
WH->>Script : 执行部署脚本
Script->>PM2 : 重启 server
PM2->>Srv : 启动/重启进程
Dev-->>Gogs : 部署完成
图表来源
章节来源
章节来源
章节来源
自动化
systemd服务:webhook.service,随系统启动
graph LR
Env[".env"] --> Cfg["server/src/config/index.ts"]
Models["models.json"] --> Cfg
Cfg --> App["后端应用"]
Deploy["deploy.sh"] --> PM2["PM2"]
Prod["deploy-prod.sh"] --> PM2
WH["webhook-deploy.py"] --> Deploy
SVC["webhook.service"] --> WH
图表来源
章节来源
章节来源
本部署文档提供了从开发到生产的完整配置与流程说明,并给出了CI/CD自动化与监控告警建议。建议在现有脚本基础上扩展蓝绿/灰度发布能力,并完善测试环境的自动化回归与性能压测流程,以进一步提升交付质量与稳定性。