- 修复添加账号按钮无反应问题
- 添加账号备注字段(可选)
- 添加账号设置按钮(修改密码/备注)
- 修复用户反馈���能
- 添加定时任务执行日志
- 修复容器重启后账号加载问题
- 修复所有JavaScript语法错误
- 优化账号加载机制(4层保障)
🤖 Generated with Claude Code
158 lines
4.5 KiB
Bash
Executable File
158 lines
4.5 KiB
Bash
Executable File
#!/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 "============================================================"
|