修复所有bug并添加新功能
- 修复添加账号按钮无反应问题
- 添加账号备注字段(可选)
- 添加账号设置按钮(修改密码/备注)
- 修复用户反馈���能
- 添加定时任务执行日志
- 修复容器重启后账号加载问题
- 修复所有JavaScript语法错误
- 优化账号加载机制(4层保障)
🤖 Generated with Claude Code
This commit is contained in:
157
deploy_to_production.sh
Executable file
157
deploy_to_production.sh
Executable file
@@ -0,0 +1,157 @@
|
||||
#!/bin/bash
|
||||
|
||||
# ============================================================
|
||||
# 生产环境部署脚本
|
||||
# 服务器: 118.145.177.79
|
||||
# 域名: zsglpt.workyai.cn
|
||||
# 项目路径: /root/zsglpt
|
||||
# ============================================================
|
||||
|
||||
set -e # 遇到错误立即退出
|
||||
|
||||
REMOTE_HOST="118.145.177.79"
|
||||
REMOTE_USER="root"
|
||||
REMOTE_PATH="/root/zsglpt"
|
||||
BACKUP_DIR="backups/backup_$(date +%Y%m%d_%H%M%S)"
|
||||
|
||||
echo "============================================================"
|
||||
echo "知识管理平台 - 生产环境部署脚本"
|
||||
echo "目标服务器: $REMOTE_HOST"
|
||||
echo "部署路径: $REMOTE_PATH"
|
||||
echo "============================================================"
|
||||
|
||||
# 步骤1: 测试SSH连接
|
||||
echo ""
|
||||
echo "[1/8] 测试SSH连接..."
|
||||
ssh -o ConnectTimeout=10 $REMOTE_USER@$REMOTE_HOST "echo '✓ SSH连接成功'" || {
|
||||
echo "✗ SSH连接失败,请检查:"
|
||||
echo " 1. 服务器IP是否正确"
|
||||
echo " 2. SSH密码是否正确"
|
||||
echo " 3. 网络连接是否正常"
|
||||
exit 1
|
||||
}
|
||||
|
||||
# 步骤2: 备份生产服务器数据库
|
||||
echo ""
|
||||
echo "[2/8] 备份生产服务器数据库..."
|
||||
ssh $REMOTE_USER@$REMOTE_HOST "
|
||||
cd $REMOTE_PATH
|
||||
mkdir -p $BACKUP_DIR
|
||||
if [ -f data/app_data.db ]; then
|
||||
cp -r data $BACKUP_DIR/
|
||||
echo '✓ 数据库备份完成: $BACKUP_DIR/data/'
|
||||
else
|
||||
echo '⚠ 未找到数据库文件,跳过备份'
|
||||
fi
|
||||
|
||||
# 同时备份当前运行的配置
|
||||
if [ -f docker-compose.yml ]; then
|
||||
cp docker-compose.yml $BACKUP_DIR/
|
||||
echo '✓ docker-compose.yml 已备份'
|
||||
fi
|
||||
"
|
||||
|
||||
# 步骤3: 压缩本地项目文件(排除不需要的文件)
|
||||
echo ""
|
||||
echo "[3/8] 压缩项目文件..."
|
||||
tar -czf /tmp/zsglpt_deploy.tar.gz \
|
||||
--exclude='*.pyc' \
|
||||
--exclude='__pycache__' \
|
||||
--exclude='.git' \
|
||||
--exclude='data' \
|
||||
--exclude='logs' \
|
||||
--exclude='截图' \
|
||||
--exclude='playwright' \
|
||||
--exclude='backups' \
|
||||
--exclude='*.tar.gz' \
|
||||
-C /home/yuyx/aaaaaa/zsglpt \
|
||||
.
|
||||
|
||||
echo "✓ 项目文件已压缩: /tmp/zsglpt_deploy.tar.gz"
|
||||
ls -lh /tmp/zsglpt_deploy.tar.gz
|
||||
|
||||
# 步骤4: 上传项目文件到服务器
|
||||
echo ""
|
||||
echo "[4/8] 上传项目文件到服务器..."
|
||||
scp /tmp/zsglpt_deploy.tar.gz $REMOTE_USER@$REMOTE_HOST:/tmp/
|
||||
echo "✓ 文件上传完成"
|
||||
|
||||
# 步骤5: 在服务器上解压并替换文件
|
||||
echo ""
|
||||
echo "[5/8] 解压并更新项目文件..."
|
||||
ssh $REMOTE_USER@$REMOTE_HOST "
|
||||
cd $REMOTE_PATH
|
||||
|
||||
# 备份旧的代码文件(以防需要回滚)
|
||||
mkdir -p $BACKUP_DIR/code
|
||||
cp -r *.py templates static Dockerfile docker-compose.yml requirements.txt $BACKUP_DIR/code/ 2>/dev/null || true
|
||||
|
||||
# 解压新文件(保留data、logs等目录)
|
||||
tar -xzf /tmp/zsglpt_deploy.tar.gz -C $REMOTE_PATH
|
||||
|
||||
# 清理临时文件
|
||||
rm /tmp/zsglpt_deploy.tar.gz
|
||||
|
||||
echo '✓ 项目文件更新完成'
|
||||
"
|
||||
|
||||
# 步骤6: 停止旧容器
|
||||
echo ""
|
||||
echo "[6/8] 停止旧容器..."
|
||||
ssh $REMOTE_USER@$REMOTE_HOST "
|
||||
cd $REMOTE_PATH
|
||||
docker-compose down
|
||||
echo '✓ 旧容器已停止'
|
||||
"
|
||||
|
||||
# 步骤7: 清理旧镜像并重新构建
|
||||
echo ""
|
||||
echo "[7/8] 重新构建Docker镜像..."
|
||||
ssh $REMOTE_USER@$REMOTE_HOST "
|
||||
cd $REMOTE_PATH
|
||||
|
||||
# 删除旧镜像
|
||||
docker rmi zsglpt-knowledge-automation 2>/dev/null || true
|
||||
|
||||
# 重新构建(无缓存)
|
||||
docker-compose build --no-cache
|
||||
|
||||
echo '✓ Docker镜像构建完成'
|
||||
"
|
||||
|
||||
# 步骤8: 启动新容器
|
||||
echo ""
|
||||
echo "[8/8] 启动新容器..."
|
||||
ssh $REMOTE_USER@$REMOTE_HOST "
|
||||
cd $REMOTE_PATH
|
||||
docker-compose up -d
|
||||
|
||||
echo '✓ 新容器已启动'
|
||||
echo ''
|
||||
echo '等待10秒,检查容器状态...'
|
||||
sleep 10
|
||||
|
||||
docker ps | grep knowledge-automation
|
||||
echo ''
|
||||
echo '查看启动日志(最后30行):'
|
||||
docker logs --tail 30 knowledge-automation-multiuser
|
||||
"
|
||||
|
||||
# 清理本地临时文件
|
||||
rm /tmp/zsglpt_deploy.tar.gz
|
||||
|
||||
echo ""
|
||||
echo "============================================================"
|
||||
echo "✓ 部署完成!"
|
||||
echo "============================================================"
|
||||
echo "访问地址: https://zsglpt.workyai.cn"
|
||||
echo "后台管理: https://zsglpt.workyai.cn/yuyx"
|
||||
echo ""
|
||||
echo "备份位置: $REMOTE_PATH/$BACKUP_DIR"
|
||||
echo ""
|
||||
echo "如需查看日志,请执行:"
|
||||
echo " ssh $REMOTE_USER@$REMOTE_HOST 'docker logs -f knowledge-automation-multiuser'"
|
||||
echo ""
|
||||
echo "如需回滚,请执行:"
|
||||
echo " ssh $REMOTE_USER@$REMOTE_HOST 'cd $REMOTE_PATH && cd $BACKUP_DIR/code && cp -r * $REMOTE_PATH/ && cd $REMOTE_PATH && docker-compose up -d --build'"
|
||||
echo "============================================================"
|
||||
Reference in New Issue
Block a user