编辑 | blame | 历史 | 原始文档

部署指南

部署前检查清单

1. 环境要求

  • [ ] Python 3.11+ 已安装
  • [ ] Docker 和 Docker Compose 已安装(推荐)
  • [ ] MySQL 8.0+ 可用
  • [ ] Redis 7+ 可用
  • [ ] 网络端口 8000 可访问

2. 配置文件

  • [ ] 复制 .env.example.env
  • [ ] 配置数据库连接信息
  • [ ] 配置Redis连接信息
  • [ ] 配置E云管家API信息
  • [ ] 配置DifyAI API密钥

3. 必要的API信息

  • [ ] E云管家域名和授权token
  • [ ] DifyAI API密钥
  • [ ] 确认E云管家回调URL配置

快速部署(Docker方式)

1. 克隆项目

git clone <repository-url>
cd ECloud

2. 配置环境变量

cp .env.example .env
# 编辑 .env 文件,填入正确的配置信息

3. 启动服务

# 启动所有服务(MySQL、Redis、应用)
docker-compose up -d

# 查看启动日志
docker-compose logs -f app

4. 验证部署

# 运行集成测试
python test_integration.py

# 检查服务状态
curl http://localhost:8000/api/v1/health

手动部署

1. 安装依赖

# 创建虚拟环境
python3 -m venv venv
source venv/bin/activate

# 安装依赖
pip install -r requirements.txt

2. 启动数据库服务

# 使用Docker启动MySQL和Redis
docker-compose up -d mysql redis

# 或者使用系统服务
sudo systemctl start mysql
sudo systemctl start redis

3. 初始化数据库

python app/utils/database_init.py

4. 启动应用

# 使用启动脚本
chmod +x start.sh
./start.sh

# 或者直接启动
python main.py

生产环境部署

1. 使用进程管理器

# 安装supervisor
sudo apt-get install supervisor

# 创建配置文件 /etc/supervisor/conf.d/ecloud-dify.conf
[program:ecloud-dify]
command=/path/to/venv/bin/python /path/to/main.py
directory=/path/to/project
user=www-data
autostart=true
autorestart=true
redirect_stderr=true
stdout_logfile=/var/log/ecloud-dify.log

2. 使用Nginx反向代理

server {
    listen 80;
    server_name your-domain.com;
    
    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

3. 配置HTTPS

# 使用Let's Encrypt
sudo certbot --nginx -d your-domain.com

监控和维护

1. 日志监控

# 查看应用日志
tail -f logs/app.log

# 查看错误日志
tail -f logs/app_error.log

# 使用Docker查看日志
docker-compose logs -f app

2. 性能监控

# 查看Redis队列状态
redis-cli
> KEYS ecloud_queue:*
> LLEN ecloud_queue:用户ID

# 查看数据库连接
mysql -u ecloud -p ecloud_dify
> SHOW PROCESSLIST;

3. 健康检查

# API健康检查
curl http://localhost:8000/api/v1/health

# 数据库健康检查
python -c "from app.utils.database_init import check_database_health; print(check_database_health())"

故障排除

常见问题

  1. 端口被占用
    ```bash
    # 查看端口占用
    netstat -tlnp | grep 8000

# 修改配置文件中的端口
vim .env
```

  1. 数据库连接失败
    ```bash
    # 检查MySQL服务状态
    sudo systemctl status mysql

# 检查连接配置
mysql -h localhost -u ecloud -p
```

  1. Redis连接失败
    ```bash
    # 检查Redis服务状态
    sudo systemctl status redis

# 测试连接
redis-cli ping
```

  1. DifyAI API调用失败
  • 检查API密钥是否正确
  • 确认网络连接
  • 查看API配额限制

日志分析

重要日志关键词:
- ERROR: 错误信息
- 消息处理失败: 消息处理异常
- 数据库连接失败: 数据库问题
- Dify响应失败: DifyAI API问题
- 发送文本消息失败: E云管家API问题

备份和恢复

数据库备份

# 备份数据库
mysqldump -u ecloud -p ecloud_dify > backup_$(date +%Y%m%d).sql

# 恢复数据库
mysql -u ecloud -p ecloud_dify < backup_20231201.sql

Redis数据备份

# Redis会自动保存到dump.rdb文件
cp /var/lib/redis/dump.rdb backup_redis_$(date +%Y%m%d).rdb

扩展和优化

1. 水平扩展

  • 使用多个应用实例
  • 配置负载均衡器
  • 使用Redis集群

2. 性能优化

  • 调整数据库连接池大小
  • 优化Redis队列处理
  • 使用缓存减少API调用

3. 安全加固

  • 配置防火墙规则
  • 使用HTTPS
  • 定期更新依赖包
  • 配置访问控制