Initial commit: 智能项目定价模型
This commit is contained in:
262
DEPLOYMENT_CHECKLIST.md
Normal file
262
DEPLOYMENT_CHECKLIST.md
Normal file
@@ -0,0 +1,262 @@
|
||||
# 智能项目定价模型 - 部署检查清单
|
||||
|
||||
> 部署前请逐项检查,确保所有条件满足
|
||||
|
||||
---
|
||||
|
||||
## 一、环境准备检查
|
||||
|
||||
### 1.1 服务器环境
|
||||
|
||||
- [ ] 操作系统:Linux (Ubuntu 22.04 / Debian 12 推荐)
|
||||
- [ ] CPU:≥ 2 核(推荐 4 核)
|
||||
- [ ] 内存:≥ 4 GB(推荐 8 GB)
|
||||
- [ ] 磁盘:≥ 40 GB(推荐 100 GB)
|
||||
|
||||
### 1.2 软件依赖
|
||||
|
||||
- [ ] Docker 已安装(版本 24.0+)
|
||||
```bash
|
||||
docker --version
|
||||
```
|
||||
- [ ] Docker Compose 已安装(版本 2.20+)
|
||||
```bash
|
||||
docker-compose --version
|
||||
```
|
||||
- [ ] Git 已安装
|
||||
```bash
|
||||
git --version
|
||||
```
|
||||
|
||||
### 1.3 网络要求
|
||||
|
||||
- [ ] 可访问外网(拉取镜像)
|
||||
- [ ] 可访问门户系统内网(AI 配置)
|
||||
- [ ] 80/443 端口未被占用或已规划
|
||||
|
||||
---
|
||||
|
||||
## 二、配置检查
|
||||
|
||||
### 2.1 环境变量
|
||||
|
||||
- [ ] 已创建 `.env` 文件
|
||||
```bash
|
||||
cp env.example .env
|
||||
```
|
||||
- [ ] 已修改数据库密码
|
||||
- [ ] `MYSQL_ROOT_PASSWORD`
|
||||
- [ ] `MYSQL_PASSWORD`
|
||||
- [ ] 已设置 `SECRET_KEY`(32位以上随机字符串)
|
||||
- [ ] 已配置 `PORTAL_CONFIG_API`(门户系统地址)
|
||||
- [ ] 已配置 `CORS_ORIGINS`(生产域名)
|
||||
- [ ] `.env` 文件权限为 600
|
||||
```bash
|
||||
chmod 600 .env
|
||||
ls -la .env # 应显示 -rw-------
|
||||
```
|
||||
|
||||
### 2.2 Nginx 配置
|
||||
|
||||
- [ ] 已修改 `nginx.conf` 中的域名
|
||||
- [ ] SSL 证书已准备或计划使用 Let's Encrypt
|
||||
|
||||
### 2.3 Docker 网络
|
||||
|
||||
- [ ] `scrm_network` 网络已创建(如需连接门户系统)
|
||||
```bash
|
||||
docker network ls | grep scrm_network
|
||||
# 如不存在则创建
|
||||
docker network create scrm_network
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 三、部署执行
|
||||
|
||||
### 3.1 首次部署
|
||||
|
||||
```bash
|
||||
# 1. 进入项目目录
|
||||
cd /opt/pricing-model # 或实际路径
|
||||
|
||||
# 2. 检查配置
|
||||
cat .env | grep -E "MYSQL|SECRET|PORTAL"
|
||||
|
||||
# 3. 执行部署
|
||||
./scripts/deploy.sh deploy
|
||||
|
||||
# 4. 查看状态
|
||||
./scripts/deploy.sh status
|
||||
```
|
||||
|
||||
### 3.2 部署后验证
|
||||
|
||||
- [ ] 所有容器运行正常
|
||||
```bash
|
||||
docker-compose ps
|
||||
# 应显示 3 个服务均为 Up 状态
|
||||
```
|
||||
- [ ] 后端健康检查通过
|
||||
```bash
|
||||
curl http://localhost:8000/health
|
||||
# 应返回 {"status": "healthy", ...}
|
||||
```
|
||||
- [ ] 数据库连接正常
|
||||
```bash
|
||||
docker exec pricing-mysql mysqladmin ping -h localhost
|
||||
# 应返回 mysqld is alive
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 四、SSL 证书配置
|
||||
|
||||
### 4.1 使用 Let's Encrypt
|
||||
|
||||
```bash
|
||||
DOMAIN=pricing.yourcompany.com \
|
||||
EMAIL=admin@yourcompany.com \
|
||||
./scripts/setup-ssl.sh request
|
||||
```
|
||||
|
||||
### 4.2 使用已有证书
|
||||
|
||||
```bash
|
||||
# 复制证书
|
||||
mkdir -p /etc/nginx/ssl
|
||||
cp your_certificate.pem /etc/nginx/ssl/pricing.yourcompany.com.pem
|
||||
cp your_private_key.key /etc/nginx/ssl/pricing.yourcompany.com.key
|
||||
chmod 600 /etc/nginx/ssl/*.key
|
||||
```
|
||||
|
||||
### 4.3 验证 SSL
|
||||
|
||||
- [ ] HTTPS 访问正常
|
||||
- [ ] HTTP 自动重定向到 HTTPS
|
||||
|
||||
---
|
||||
|
||||
## 五、Nginx 反向代理
|
||||
|
||||
### 5.1 配置 Nginx
|
||||
|
||||
```bash
|
||||
# 1. 复制配置
|
||||
cp nginx.conf /etc/nginx/sites-available/pricing.conf
|
||||
|
||||
# 2. 修改域名和证书路径
|
||||
vim /etc/nginx/sites-available/pricing.conf
|
||||
|
||||
# 3. 启用配置
|
||||
ln -s /etc/nginx/sites-available/pricing.conf /etc/nginx/sites-enabled/
|
||||
|
||||
# 4. 测试配置
|
||||
nginx -t
|
||||
|
||||
# 5. 重载 Nginx
|
||||
nginx -s reload
|
||||
```
|
||||
|
||||
### 5.2 验证访问
|
||||
|
||||
- [ ] 可通过域名访问前端页面
|
||||
- [ ] API 接口 `/api/v1/health` 可访问
|
||||
- [ ] WebSocket 连接正常(AI 流式输出)
|
||||
|
||||
---
|
||||
|
||||
## 六、定时任务配置
|
||||
|
||||
```bash
|
||||
crontab -e
|
||||
```
|
||||
|
||||
添加以下任务:
|
||||
|
||||
```cron
|
||||
# 每日凌晨 2 点备份
|
||||
0 2 * * * /opt/pricing-model/scripts/backup.sh backup >> /var/log/pricing-backup.log 2>&1
|
||||
|
||||
# 每 5 分钟健康检查
|
||||
*/5 * * * * /opt/pricing-model/scripts/monitor.sh quick >> /var/log/pricing-monitor.log 2>&1
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 七、安全检查
|
||||
|
||||
### 7.1 文件权限
|
||||
|
||||
- [ ] `.env` 文件权限为 600
|
||||
- [ ] 脚本文件可执行
|
||||
```bash
|
||||
chmod +x scripts/*.sh
|
||||
```
|
||||
|
||||
### 7.2 端口暴露
|
||||
|
||||
- [ ] 仅 Nginx 暴露 80/443 端口
|
||||
- [ ] 后端 8000 端口仅内网访问
|
||||
- [ ] MySQL 3306 端口仅内网访问
|
||||
|
||||
### 7.3 密钥安全
|
||||
|
||||
- [ ] 未使用默认密码
|
||||
- [ ] SECRET_KEY 为随机字符串
|
||||
- [ ] API Key 从门户系统获取(未硬编码)
|
||||
|
||||
---
|
||||
|
||||
## 八、功能验证
|
||||
|
||||
### 8.1 核心功能
|
||||
|
||||
- [ ] 用户可登录系统
|
||||
- [ ] 基础数据管理正常(分类、耗材、设备等)
|
||||
- [ ] 项目成本计算正确
|
||||
- [ ] 市场分析功能正常
|
||||
- [ ] AI 定价建议可生成
|
||||
- [ ] 利润模拟计算正确
|
||||
- [ ] 仪表盘数据显示正常
|
||||
|
||||
### 8.2 性能验证
|
||||
|
||||
- [ ] 页面加载时间 < 2 秒
|
||||
- [ ] API 响应时间 < 500ms
|
||||
- [ ] AI 接口响应 < 10 秒
|
||||
|
||||
---
|
||||
|
||||
## 九、交付确认
|
||||
|
||||
### 9.1 文档
|
||||
|
||||
- [ ] README.md 已更新
|
||||
- [ ] 用户操作手册已提供
|
||||
- [ ] 系统管理手册已提供
|
||||
|
||||
### 9.2 培训
|
||||
|
||||
- [ ] 用户培训已完成(或文档已提供)
|
||||
- [ ] 运维培训已完成(或文档已提供)
|
||||
|
||||
### 9.3 签收
|
||||
|
||||
- [ ] 客户/产品验收通过
|
||||
- [ ] 上线通知已发送
|
||||
|
||||
---
|
||||
|
||||
## 十、问题处理
|
||||
|
||||
如遇问题,请参考:
|
||||
|
||||
1. 查看容器日志:`docker-compose logs -f`
|
||||
2. 运行监控检查:`./scripts/monitor.sh report`
|
||||
3. 参考《系统管理手册》故障排查章节
|
||||
4. 联系瑞小美技术团队
|
||||
|
||||
---
|
||||
|
||||
*瑞小美技术团队 · 2026-01-20*
|
||||
Reference in New Issue
Block a user