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

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

5.6 KiB
Raw Blame History

生产环境部署指南

服务器信息

  • IP地址: 118.145.177.79
  • 域名: zsglpt.workyai.cn
  • SSH用户: root
  • 项目路径: /root/zsglpt

部署前检查清单

1. 本地环境检查

  • 代码已测试无误
  • 数据库迁移脚本已准备
  • Docker配置文件已更新
  • 静态文件已优化SourceMap已修复

2. 服务器连接测试

# 测试SSH连接
ssh root@118.145.177.79 "echo 'SSH连接成功'"

3. 确认服务器环境

# 检查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: 使用自动化脚本(推荐)

cd /home/yuyx/aaaaaa/zsglpt
./deploy_to_production.sh

脚本会自动完成:

  1. ✓ 测试SSH连接
  2. ✓ 备份生产服务器数据库
  3. ✓ 压缩并上传项目文件
  4. ✓ 停止旧容器
  5. ✓ 重新构建Docker镜像
  6. ✓ 启动新容器
  7. ✓ 显示运行状态

方法2: 手动部署步骤

如果自动脚本失败,可以手动执行以下步骤:

步骤1: 备份生产数据

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: 压缩并上传项目

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: 在服务器上解压

ssh root@118.145.177.79 "
    cd /root/zsglpt
    tar -xzf /tmp/zsglpt_deploy.tar.gz
    rm /tmp/zsglpt_deploy.tar.gz
"

步骤4: 重启服务

ssh root@118.145.177.79 "
    cd /root/zsglpt
    docker-compose down
    docker-compose build --no-cache
    docker-compose up -d
"

部署后验证

1. 检查容器状态

ssh root@118.145.177.79 "docker ps | grep knowledge-automation"

预期输出: 状态为 Up 且包含 (healthy)

2. 检查服务日志

ssh root@118.145.177.79 "docker logs --tail 50 knowledge-automation-multiuser"

预期输出:

  • ✓ 数据库连接池已初始化
  • ✓ 浏览器环境检查完成
  • ✓ 服务器启动成功

3. 测试HTTP访问

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的挂载方便热更新


回滚步骤

如果部署后出现问题,可以快速回滚到上一个版本:

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: 容器无法启动

# 查看详细错误日志
ssh root@118.145.177.79 "docker logs knowledge-automation-multiuser"

# 检查端口占用
ssh root@118.145.177.79 "netstat -tlnp | grep 51233"

问题2: 数据库连接失败

# 检查数据库文件权限
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: 域名无法访问

# 检查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代理设置

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";
}

监控命令

实时查看日志

ssh root@118.145.177.79 "docker logs -f knowledge-automation-multiuser"

查看容器资源使用

ssh root@118.145.177.79 "docker stats knowledge-automation-multiuser"

查看运行任务

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/文档中更新部署记录!