Files
zsglpt/DEPLOYMENT_GUIDE.md
Yu Yon b5344cd55e 修复所有bug并添加新功能
- 修复添加账号按钮无反应问题
- 添加账号备注字段(可选)
- 添加账号设置按钮(修改密码/备注)
- 修复用户反馈���能
- 添加定时任务执行日志
- 修复容器重启后账号加载问题
- 修复所有JavaScript语法错误
- 优化账号加载机制(4层保障)

🤖 Generated with Claude Code
2025-12-10 11:19:16 +08:00

268 lines
5.6 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.
# 生产环境部署指南
## 服务器信息
- **IP地址**: 118.145.177.79
- **域名**: zsglpt.workyai.cn
- **SSH用户**: root
- **项目路径**: /root/zsglpt
---
## 部署前检查清单
### 1. 本地环境检查
- [x] 代码已测试无误
- [x] 数据库迁移脚本已准备
- [x] Docker配置文件已更新
- [x] 静态文件已优化SourceMap已修复
### 2. 服务器连接测试
```bash
# 测试SSH连接
ssh root@118.145.177.79 "echo 'SSH连接成功'"
```
### 3. 确认服务器环境
```bash
# 检查Docker是否运行
ssh root@118.145.177.79 "docker ps"
# 检查磁盘空间
ssh root@118.145.177.79 "df -h"
# 检查内存
ssh root@118.145.177.79 "free -h"
```
---
## 快速部署步骤
### 方法1: 使用自动化脚本(推荐)
```bash
cd /home/yuyx/aaaaaa/zsglpt
./deploy_to_production.sh
```
**脚本会自动完成:**
1. ✓ 测试SSH连接
2. ✓ 备份生产服务器数据库
3. ✓ 压缩并上传项目文件
4. ✓ 停止旧容器
5. ✓ 重新构建Docker镜像
6. ✓ 启动新容器
7. ✓ 显示运行状态
### 方法2: 手动部署步骤
如果自动脚本失败,可以手动执行以下步骤:
#### 步骤1: 备份生产数据
```bash
ssh root@118.145.177.79 "
cd /root/zsglpt
mkdir -p backups/backup_$(date +%Y%m%d_%H%M%S)
cp -r data backups/backup_$(date +%Y%m%d_%H%M%S)/
"
```
#### 步骤2: 压缩并上传项目
```bash
cd /home/yuyx/aaaaaa/zsglpt
tar -czf /tmp/zsglpt_deploy.tar.gz \
--exclude='data' \
--exclude='logs' \
--exclude='截图' \
--exclude='playwright' \
--exclude='backups' \
.
scp /tmp/zsglpt_deploy.tar.gz root@118.145.177.79:/tmp/
```
#### 步骤3: 在服务器上解压
```bash
ssh root@118.145.177.79 "
cd /root/zsglpt
tar -xzf /tmp/zsglpt_deploy.tar.gz
rm /tmp/zsglpt_deploy.tar.gz
"
```
#### 步骤4: 重启服务
```bash
ssh root@118.145.177.79 "
cd /root/zsglpt
docker-compose down
docker-compose build --no-cache
docker-compose up -d
"
```
---
## 部署后验证
### 1. 检查容器状态
```bash
ssh root@118.145.177.79 "docker ps | grep knowledge-automation"
```
**预期输出**: 状态为 `Up` 且包含 `(healthy)`
### 2. 检查服务日志
```bash
ssh root@118.145.177.79 "docker logs --tail 50 knowledge-automation-multiuser"
```
**预期输出**:
- ✓ 数据库连接池已初始化
- ✓ 浏览器环境检查完成
- ✓ 服务器启动成功
### 3. 测试HTTP访问
```bash
curl -I https://zsglpt.workyai.cn
```
**预期输出**: HTTP/1.1 200 或 302
### 4. 测试功能
- [ ] 访问前台页面: https://zsglpt.workyai.cn
- [ ] 测试登录功能
- [ ] 测试任务执行
- [ ] 检查WebSocket连接
- [ ] 验证数据库数据完整
---
## 重要修复项说明
### 修复1: 执行用时计算
**位置**: `app.py:1221`
**说明**: 执行用时现在只计算任务实际运行时间,不包含排队等待时间
### 修复2: SourceMap错误
**文件**: `static/js/socket.io.min.js`
**说明**: 已添加内联空SourceMap浏览器不会再报404错误
### 修复3: 静态文件缓存
**位置**: `app.py:1747-1749`
**说明**: 添加了Cache-Control响应头禁用静态文件缓存
### 修复4: Docker挂载
**文件**: `docker-compose.yml`
**说明**: 新增了static、templates、app.py的挂载方便热更新
---
## 回滚步骤
如果部署后出现问题,可以快速回滚到上一个版本:
```bash
ssh root@118.145.177.79 "
cd /root/zsglpt
# 找到最新的备份目录
LATEST_BACKUP=\$(ls -t backups/ | head -1)
echo \"回滚到备份: \$LATEST_BACKUP\"
# 停止当前容器
docker-compose down
# 恢复代码文件
cp -r backups/\$LATEST_BACKUP/code/* .
# 恢复数据库(如果需要)
# cp -r backups/\$LATEST_BACKUP/data/* data/
# 重启容器
docker-compose up -d --build
"
```
---
## 常见问题排查
### 问题1: 容器无法启动
```bash
# 查看详细错误日志
ssh root@118.145.177.79 "docker logs knowledge-automation-multiuser"
# 检查端口占用
ssh root@118.145.177.79 "netstat -tlnp | grep 51233"
```
### 问题2: 数据库连接失败
```bash
# 检查数据库文件权限
ssh root@118.145.177.79 "ls -lh /root/zsglpt/data/"
# 检查数据库文件是否存在
ssh root@118.145.177.79 "docker exec knowledge-automation-multiuser ls -lh /app/data/"
```
### 问题3: 域名无法访问
```bash
# 检查Nginx配置
ssh root@118.145.177.79 "docker exec zsgpt2-nginx nginx -t"
# 查看Nginx日志
ssh root@118.145.177.79 "docker logs zsgpt2-nginx"
```
### 问题4: WebSocket连接失败
检查Nginx配置是否包含WebSocket代理设置
```nginx
location /socket.io/ {
proxy_pass http://knowledge-automation:51233;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
```
---
## 监控命令
### 实时查看日志
```bash
ssh root@118.145.177.79 "docker logs -f knowledge-automation-multiuser"
```
### 查看容器资源使用
```bash
ssh root@118.145.177.79 "docker stats knowledge-automation-multiuser"
```
### 查看运行任务
```bash
ssh root@118.145.177.79 "docker exec knowledge-automation-multiuser ps aux | grep python"
```
---
## 紧急联系信息
- **部署时间**: 2025-11-20
- **部署版本**: v2.0 (修复执行用时+SourceMap)
- **备份位置**: /root/zsglpt/backups/
---
## 维护建议
1. **定期备份**: 建议每天自动备份数据库
2. **日志清理**: 定期清理旧日志文件,避免磁盘占满
3. **监控磁盘**: 关注磁盘使用率,特别是截图目录
4. **更新依赖**: 定期更新Python依赖包和Docker镜像
5. **安全审计**: 定期检查系统安全日志
---
**部署完成后请在GitHub/文档中更新部署记录!**