修复所有bug并添加新功能

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

🤖 Generated with Claude Code
This commit is contained in:
Yu Yon
2025-12-10 11:19:16 +08:00
parent 0fd7137cea
commit b5344cd55e
67 changed files with 38235 additions and 3271 deletions

157
deploy_to_production.sh Executable file
View 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 "============================================================"