Initial commit: 智能项目定价模型

This commit is contained in:
kuzma
2026-01-31 21:33:06 +08:00
commit ef0824303f
174 changed files with 31705 additions and 0 deletions

262
DEPLOYMENT_CHECKLIST.md Normal file
View 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*