mirror of
https://github.com/handsomezhuzhu/QQuiz.git
synced 2026-02-20 20:10:14 +00:00
docs: 完善文档和清理项目,添加 Gemini 配置指南
主要更新: 📚 文档改进 - 新增 AI_CONFIGURATION.md:详细的 AI 提供商配置指南 - 新增 CHINA_MIRROR_GUIDE.md:中国镜像加速指南 - 删除 6 个过时文档(DEPLOYMENT.md, QUICK_START.md 等) - 更新 README.md:添加 Gemini 功能特性和 AI 提供商对比表 🧹 脚本清理 - 删除 11 个重复/过时脚本(从 25 个减少到 14 个) - 删除 PostgreSQL 相关脚本(项目使用 MySQL) - 删除重复的启动脚本(start_windows.bat, start_app.bat 等) ⚙️ 配置文件更新 - 更新 .env.example:添加 Gemini 配置示例和说明 - 默认 AI_PROVIDER 改为 gemini(推荐) - 添加各提供商的获取 API Key 链接 🎯 核心改进 - 突出 Gemini 原生 PDF 理解优势 - 提供清晰的 AI 提供商选择指南 - 简化项目结构,提高可维护性 清理内容: - 删除 docs: DEPLOYMENT.md, DOCKER_MIRROR_SETUP.md, GITHUB_PUSH_GUIDE.md, QUICK_START.md, README_QUICKSTART.md, START_HERE.txt - 删除 scripts: auto_setup_and_run.bat, check_postgres.bat, logs_windows.bat, push_to_github.bat, quick_config.bat, restart_docker.bat, setup_docker_mirror.bat, start_app.bat, start_postgres.bat, start_windows.bat, start_windows_china.bat 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -1,258 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 全自动部署
|
||||
|
||||
color 0A
|
||||
echo.
|
||||
echo ██████╗ ██████╗ ██╗ ██╗██╗███████╗
|
||||
echo ██╔═══██╗██╔═══██╗██║ ██║██║╚══███╔╝
|
||||
echo ██║ ██║██║ ██║██║ ██║██║ ███╔╝
|
||||
echo ██║▄▄ ██║██║▄▄ ██║██║ ██║██║ ███╔╝
|
||||
echo ╚██████╔╝╚██████╔╝╚██████╔╝██║███████╗
|
||||
echo ╚══▀▀═╝ ╚══▀▀═╝ ╚═════╝ ╚═╝╚══════╝
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 智能刷题与题库管理平台
|
||||
echo 全自动部署脚本
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 1: 检查环境
|
||||
REM ============================================
|
||||
echo [1/8] 检查运行环境...
|
||||
echo.
|
||||
|
||||
REM 检查 Python
|
||||
python --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 未检测到 Python!
|
||||
echo 请先安装 Python 3.11+: https://www.python.org/downloads/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo ✓ Python 已安装
|
||||
|
||||
REM 检查 Node.js
|
||||
node --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 未检测到 Node.js!
|
||||
echo 请先安装 Node.js 18+: https://nodejs.org/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo ✓ Node.js 已安装
|
||||
|
||||
REM 检查 PostgreSQL
|
||||
psql --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [警告] 未检测到 PostgreSQL 命令行工具
|
||||
echo 可能已安装但未加入 PATH,继续尝试...
|
||||
)
|
||||
echo ✓ 环境检查完成
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 2: 配置环境变量
|
||||
REM ============================================
|
||||
echo [2/8] 配置环境变量...
|
||||
echo.
|
||||
|
||||
if not exist ".env" (
|
||||
copy .env.example .env >nul
|
||||
echo ✓ 已创建 .env 文件
|
||||
echo.
|
||||
echo [重要] 请编辑 .env 文件,配置以下项:
|
||||
echo 1. SECRET_KEY - JWT密钥(至少32字符)
|
||||
echo 2. OPENAI_API_KEY - OpenAI API密钥
|
||||
echo.
|
||||
echo 按任意键打开 .env 文件编辑...
|
||||
pause >nul
|
||||
notepad .env
|
||||
echo.
|
||||
echo 编辑完成后,按任意键继续...
|
||||
pause >nul
|
||||
) else (
|
||||
echo ✓ .env 文件已存在
|
||||
)
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 3: 创建数据库
|
||||
REM ============================================
|
||||
echo [3/8] 配置数据库...
|
||||
echo.
|
||||
|
||||
echo 请输入 PostgreSQL 信息(或直接回车使用默认值):
|
||||
echo.
|
||||
set /p PGHOST="数据库主机 [默认: localhost]: "
|
||||
if "%PGHOST%"=="" set PGHOST=localhost
|
||||
|
||||
set /p PGPORT="数据库端口 [默认: 5432]: "
|
||||
if "%PGPORT%"=="" set PGPORT=5432
|
||||
|
||||
set /p PGUSER="管理员用户名 [默认: postgres]: "
|
||||
if "%PGUSER%"=="" set PGUSER=postgres
|
||||
|
||||
echo.
|
||||
echo 正在创建数据库和用户...
|
||||
echo.
|
||||
|
||||
REM 创建数据库脚本
|
||||
echo DROP DATABASE IF EXISTS qquiz_db; > temp_create_db.sql
|
||||
echo DROP USER IF EXISTS qquiz; >> temp_create_db.sql
|
||||
echo CREATE USER qquiz WITH PASSWORD 'qquiz_password'; >> temp_create_db.sql
|
||||
echo CREATE DATABASE qquiz_db OWNER qquiz; >> temp_create_db.sql
|
||||
echo GRANT ALL PRIVILEGES ON DATABASE qquiz_db TO qquiz; >> temp_create_db.sql
|
||||
|
||||
REM 执行 SQL
|
||||
psql -h %PGHOST% -p %PGPORT% -U %PGUSER% -f temp_create_db.sql 2>nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo ✓ 数据库创建成功
|
||||
del temp_create_db.sql
|
||||
) else (
|
||||
echo ! 数据库创建可能失败,继续尝试...
|
||||
del temp_create_db.sql
|
||||
)
|
||||
echo.
|
||||
|
||||
REM 更新 .env 中的数据库连接
|
||||
powershell -Command "(Get-Content .env) -replace 'DATABASE_URL=.*', 'DATABASE_URL=postgresql+asyncpg://qquiz:qquiz_password@%PGHOST%:%PGPORT%/qquiz_db' | Set-Content .env"
|
||||
echo ✓ 已更新数据库连接配置
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 4: 安装后端依赖
|
||||
REM ============================================
|
||||
echo [4/8] 安装后端依赖...
|
||||
echo.
|
||||
|
||||
cd backend
|
||||
|
||||
if not exist "venv" (
|
||||
echo 创建虚拟环境...
|
||||
python -m venv venv
|
||||
)
|
||||
|
||||
echo 激活虚拟环境并安装依赖...
|
||||
call venv\Scripts\activate.bat && pip install -q -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo ✓ 后端依赖安装成功
|
||||
) else (
|
||||
echo ! 部分依赖可能安装失败,继续尝试...
|
||||
)
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 5: 初始化数据库
|
||||
REM ============================================
|
||||
echo [5/8] 初始化数据库表...
|
||||
echo.
|
||||
|
||||
call venv\Scripts\activate.bat && alembic upgrade head 2>nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo ✓ 数据库表创建成功
|
||||
) else (
|
||||
echo ! 数据库迁移失败,将在启动时自动创建
|
||||
)
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 6: 安装前端依赖
|
||||
REM ============================================
|
||||
echo [6/8] 安装前端依赖...
|
||||
echo.
|
||||
|
||||
cd frontend
|
||||
|
||||
if not exist "node_modules" (
|
||||
echo 使用淘宝镜像加速...
|
||||
call npm config set registry https://registry.npmmirror.com
|
||||
echo 安装依赖(需要几分钟)...
|
||||
call npm install --silent
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo ✓ 前端依赖安装成功
|
||||
) else (
|
||||
echo ! 前端依赖安装失败
|
||||
cd ..
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
) else (
|
||||
echo ✓ 前端依赖已安装
|
||||
)
|
||||
echo.
|
||||
|
||||
cd ..
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 7: 启动后端服务
|
||||
REM ============================================
|
||||
echo [7/8] 启动后端服务...
|
||||
echo.
|
||||
|
||||
start "QQuiz Backend" cmd /k "cd /d %~dp0..\backend && call venv\Scripts\activate.bat && echo ======================================== && echo QQuiz 后端服务 && echo ======================================== && echo. && echo API 地址: http://localhost:8000 && echo API 文档: http://localhost:8000/docs && echo. && echo 按 Ctrl+C 停止服务 && echo. && uvicorn main:app --reload"
|
||||
|
||||
echo ✓ 后端服务已在新窗口中启动
|
||||
echo 等待服务启动...
|
||||
timeout /t 8 /nobreak >nul
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
REM 步骤 8: 启动前端服务
|
||||
REM ============================================
|
||||
echo [8/8] 启动前端服务...
|
||||
echo.
|
||||
|
||||
start "QQuiz Frontend" cmd /k "cd /d %~dp0..\frontend && echo ======================================== && echo QQuiz 前端服务 && echo ======================================== && echo. && echo 前端地址: http://localhost:3000 && echo. && echo 按 Ctrl+C 停止服务 && echo. && npm start"
|
||||
|
||||
echo ✓ 前端服务已在新窗口中启动
|
||||
echo 等待服务启动...
|
||||
timeout /t 5 /nobreak >nul
|
||||
echo.
|
||||
|
||||
REM ============================================
|
||||
REM 完成
|
||||
REM ============================================
|
||||
color 0B
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 🎉 部署完成!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 服务地址:
|
||||
echo 前端: http://localhost:3000
|
||||
echo 后端: http://localhost:8000
|
||||
echo 文档: http://localhost:8000/docs
|
||||
echo.
|
||||
echo 默认账户:
|
||||
echo 用户名: admin
|
||||
echo 密码: admin123
|
||||
echo.
|
||||
echo ⚠️ 首次登录后请立即修改密码!
|
||||
echo.
|
||||
echo 测试数据:
|
||||
echo test_data/sample_questions.txt
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 询问是否打开浏览器
|
||||
choice /C YN /M "是否打开浏览器访问系统"
|
||||
if %errorlevel% equ 1 (
|
||||
timeout /t 3 /nobreak >nul
|
||||
start http://localhost:3000
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 系统正在运行中...
|
||||
echo 关闭此窗口不会停止服务
|
||||
echo 要停止服务,请关闭后端和前端窗口
|
||||
echo.
|
||||
pause
|
||||
@@ -1,93 +0,0 @@
|
||||
@echo off
|
||||
title PostgreSQL Status Check
|
||||
color 0B
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo PostgreSQL Database Status Check
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
REM Check PostgreSQL installation
|
||||
echo [1] Checking PostgreSQL Installation...
|
||||
if exist "C:\Program Files\PostgreSQL\18" (
|
||||
echo OK - PostgreSQL 18 is installed
|
||||
echo Location: C:\Program Files\PostgreSQL\18
|
||||
) else (
|
||||
echo ERROR - PostgreSQL 18 not found!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo.
|
||||
|
||||
REM Check PostgreSQL service
|
||||
echo [2] Checking PostgreSQL Service...
|
||||
sc query postgresql-x64-18 >nul 2>&1
|
||||
if %errorlevel% equ 0 (
|
||||
echo OK - PostgreSQL service exists
|
||||
echo.
|
||||
echo Service details:
|
||||
sc query postgresql-x64-18
|
||||
echo.
|
||||
) else (
|
||||
echo WARNING - PostgreSQL service not found!
|
||||
echo Trying alternative names...
|
||||
sc query | findstr /i "postgres"
|
||||
)
|
||||
echo.
|
||||
|
||||
REM Check if port 5432 is listening
|
||||
echo [3] Checking Port 5432...
|
||||
netstat -ano | findstr ":5432" | findstr "LISTENING" >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo OK - PostgreSQL is listening on port 5432
|
||||
netstat -ano | findstr ":5432" | findstr "LISTENING"
|
||||
) else (
|
||||
echo ERROR - Port 5432 is NOT listening!
|
||||
echo PostgreSQL service is probably not running.
|
||||
echo.
|
||||
echo To start the service, you can:
|
||||
echo 1. Open Services (services.msc)
|
||||
echo 2. Find "postgresql-x64-18" service
|
||||
echo 3. Right-click and select "Start"
|
||||
echo.
|
||||
echo OR run: net start postgresql-x64-18
|
||||
)
|
||||
echo.
|
||||
|
||||
REM Try to connect to database
|
||||
echo [4] Testing Database Connection...
|
||||
set PGPASSWORD=postgres
|
||||
"C:\Program Files\PostgreSQL\18\pgAdmin 4\runtime\psql.exe" -h localhost -U postgres -c "SELECT version();" postgres >nul 2>&1
|
||||
if %errorlevel% equ 0 (
|
||||
echo OK - Successfully connected to PostgreSQL!
|
||||
echo.
|
||||
"C:\Program Files\PostgreSQL\18\pgAdmin 4\runtime\psql.exe" -h localhost -U postgres -c "SELECT version();" postgres
|
||||
echo.
|
||||
|
||||
REM Check if qquiz database exists
|
||||
echo [5] Checking QQuiz Database...
|
||||
"C:\Program Files\PostgreSQL\18\pgAdmin 4\runtime\psql.exe" -h localhost -U postgres -c "\l" postgres | findstr "qquiz_db" >nul
|
||||
if %errorlevel% equ 0 (
|
||||
echo OK - qquiz_db database exists
|
||||
) else (
|
||||
echo INFO - qquiz_db database does not exist yet
|
||||
echo This is normal for first-time setup
|
||||
)
|
||||
) else (
|
||||
echo ERROR - Cannot connect to PostgreSQL!
|
||||
echo.
|
||||
echo Possible reasons:
|
||||
echo 1. PostgreSQL service is not running
|
||||
echo 2. Default password 'postgres' is incorrect
|
||||
echo 3. PostgreSQL is not configured to accept local connections
|
||||
echo.
|
||||
echo Please start the PostgreSQL service first!
|
||||
)
|
||||
echo.
|
||||
|
||||
echo ========================================
|
||||
echo Check Complete
|
||||
echo ========================================
|
||||
echo.
|
||||
pause
|
||||
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 查看日志
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz 服务日志
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 按 Ctrl+C 退出日志查看
|
||||
echo.
|
||||
|
||||
docker-compose logs -f
|
||||
@@ -1,83 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 推送到 GitHub
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 推送 QQuiz 到 GitHub
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
REM 检查是否有远程仓库
|
||||
git remote -v | findstr "origin" >nul
|
||||
if %errorlevel% neq 0 (
|
||||
echo [提示] 首次推送,正在配置远程仓库...
|
||||
git remote add origin https://github.com/handsomezhuzhu/QQuiz.git
|
||||
echo [完成] 远程仓库已配置
|
||||
echo.
|
||||
)
|
||||
|
||||
echo [1/4] 检查更改...
|
||||
git status
|
||||
|
||||
echo.
|
||||
echo [2/4] 添加所有更改...
|
||||
git add .
|
||||
|
||||
echo.
|
||||
set /p commit_msg="请输入提交信息 (或直接回车使用默认): "
|
||||
|
||||
if "%commit_msg%"=="" (
|
||||
set commit_msg=Update: minor changes
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [3/4] 提交更改...
|
||||
git commit -m "%commit_msg%"
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo [提示] 没有需要提交的更改
|
||||
)
|
||||
|
||||
echo.
|
||||
echo [4/4] 推送到 GitHub...
|
||||
echo.
|
||||
echo [重要] 如果是首次推送,需要输入 GitHub 认证:
|
||||
echo Username: handsomezhuzhu
|
||||
echo Password: 使用 Personal Access Token (不是密码!)
|
||||
echo.
|
||||
echo 如何获取 Token: 参考 docs/GITHUB_PUSH_GUIDE.md
|
||||
echo.
|
||||
pause
|
||||
|
||||
git push -u origin main
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo ✅ 推送成功!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 访问仓库: https://github.com/handsomezhuzhu/QQuiz
|
||||
echo.
|
||||
) else (
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo ❌ 推送失败!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 可能的原因:
|
||||
echo 1. 未配置 GitHub 认证
|
||||
echo 2. Token 过期或无效
|
||||
echo 3. 网络连接问题
|
||||
echo.
|
||||
echo 解决方案:
|
||||
echo 1. 阅读 docs/GITHUB_PUSH_GUIDE.md 配置认证
|
||||
echo 2. 确认 Personal Access Token 有效
|
||||
echo 3. 检查网络连接
|
||||
echo.
|
||||
)
|
||||
|
||||
pause
|
||||
@@ -1,56 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 快速配置
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz 快速配置
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
REM 创建 .env 文件
|
||||
echo 正在创建配置文件...
|
||||
echo.
|
||||
|
||||
(
|
||||
echo # QQuiz 配置文件 - 快速启动版
|
||||
echo.
|
||||
echo # 数据库配置
|
||||
echo DATABASE_URL=postgresql+asyncpg://qquiz:qquiz_password@localhost:5432/qquiz_db
|
||||
echo.
|
||||
echo # JWT 密钥(安全随机生成)
|
||||
echo SECRET_KEY=qquiz-secret-key-for-development-change-in-production-32chars
|
||||
echo.
|
||||
echo # AI 配置 - OpenAI
|
||||
echo AI_PROVIDER=openai
|
||||
echo OPENAI_API_KEY=sk-your-openai-api-key-here
|
||||
echo OPENAI_BASE_URL=https://api.openai.com/v1
|
||||
echo OPENAI_MODEL=gpt-4o-mini
|
||||
echo.
|
||||
echo # 系统配置
|
||||
echo ALLOW_REGISTRATION=true
|
||||
echo MAX_UPLOAD_SIZE_MB=10
|
||||
echo MAX_DAILY_UPLOADS=20
|
||||
echo.
|
||||
echo # CORS
|
||||
echo CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
|
||||
echo.
|
||||
echo # 上传目录
|
||||
echo UPLOAD_DIR=./uploads
|
||||
) > .env
|
||||
|
||||
echo ✓ 配置文件已创建
|
||||
echo.
|
||||
echo [重要] 请编辑 OPENAI_API_KEY
|
||||
echo.
|
||||
echo 按任意键打开配置文件...
|
||||
pause >nul
|
||||
|
||||
notepad .env
|
||||
|
||||
echo.
|
||||
echo 配置完成!现在可以运行 scripts\auto_setup_and_run.bat 启动系统
|
||||
echo.
|
||||
pause
|
||||
48
scripts/rebuild_backend.bat
Normal file
48
scripts/rebuild_backend.bat
Normal file
@@ -0,0 +1,48 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
echo ========================================
|
||||
echo 重新构建并启动后端服务
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo [1/3] 停止后端容器...
|
||||
docker-compose stop backend
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo ❌ 停止后端失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo ✅ 后端已停止
|
||||
echo.
|
||||
|
||||
echo [2/3] 重新构建后端镜像(这可能需要几分钟)...
|
||||
docker-compose build backend
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo ❌ 构建失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo ✅ 构建完成
|
||||
echo.
|
||||
|
||||
echo [3/3] 启动后端容器...
|
||||
docker-compose up -d backend
|
||||
if %ERRORLEVEL% NEQ 0 (
|
||||
echo ❌ 启动失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo ✅ 后端已启动
|
||||
echo.
|
||||
|
||||
echo ========================================
|
||||
echo 重新构建完成!
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 现在可以查看后端日志:
|
||||
echo docker-compose logs -f backend
|
||||
echo.
|
||||
echo 或者按任意键退出...
|
||||
pause >nul
|
||||
@@ -1,47 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - Restart Docker Services
|
||||
color 0B
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Restarting QQuiz Docker Services
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
echo [1/4] Stopping existing containers...
|
||||
docker-compose down
|
||||
echo OK
|
||||
echo.
|
||||
|
||||
echo [2/4] Rebuilding backend image...
|
||||
docker-compose build backend --no-cache
|
||||
echo OK
|
||||
echo.
|
||||
|
||||
echo [3/4] Starting all services...
|
||||
docker-compose up -d
|
||||
echo OK
|
||||
echo.
|
||||
|
||||
echo [4/4] Waiting for services to be ready...
|
||||
timeout /t 15 /nobreak >nul
|
||||
echo.
|
||||
|
||||
echo ========================================
|
||||
echo Services Restarted!
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Checking service status...
|
||||
docker-compose ps
|
||||
echo.
|
||||
|
||||
echo Frontend: http://localhost:3000
|
||||
echo Backend: http://localhost:8000
|
||||
echo Database: MySQL on port 3306
|
||||
echo.
|
||||
echo Login: admin / admin123
|
||||
echo.
|
||||
|
||||
pause
|
||||
@@ -1,56 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 配置 Docker 镜像加速器
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 配置 Docker 镜像加速器
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
echo [提示] 此脚本将帮助您配置 Docker Desktop 使用国内镜像源
|
||||
echo.
|
||||
echo 请按照以下步骤操作:
|
||||
echo.
|
||||
echo 1. 打开 Docker Desktop
|
||||
echo 2. 点击右上角的齿轮图标 ⚙️ (设置)
|
||||
echo 3. 选择左侧菜单的 "Docker Engine"
|
||||
echo 4. 在 JSON 配置中找到或添加 "registry-mirrors" 部分
|
||||
echo.
|
||||
echo 将以下内容复制到配置中:
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo "registry-mirrors": [
|
||||
echo "https://docker.mirrors.ustc.edu.cn",
|
||||
echo "https://hub-mirror.c.163.com",
|
||||
echo "https://mirror.baidubce.com"
|
||||
echo ]
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 完整配置示例:
|
||||
echo.
|
||||
echo {
|
||||
echo "builder": {
|
||||
echo "gc": {
|
||||
echo "defaultKeepStorage": "20GB",
|
||||
echo "enabled": true
|
||||
echo }
|
||||
echo },
|
||||
echo "experimental": false,
|
||||
echo "registry-mirrors": [
|
||||
echo "https://docker.mirrors.ustc.edu.cn",
|
||||
echo "https://hub-mirror.c.163.com",
|
||||
echo "https://mirror.baidubce.com"
|
||||
echo ]
|
||||
echo }
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 5. 点击 "Apply & Restart" 应用并重启 Docker
|
||||
echo 6. 等待 Docker Desktop 重启完成
|
||||
echo 7. 重新运行 start_windows.bat
|
||||
echo.
|
||||
|
||||
pause
|
||||
@@ -1,117 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - Starting Application
|
||||
color 0A
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo QQuiz - Auto Deploy Script
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
REM Check if .env exists
|
||||
if not exist ".env" (
|
||||
echo ERROR: .env file not found!
|
||||
echo Please run setup.bat first
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [1/7] Checking Python...
|
||||
python --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Python not found!
|
||||
echo Please install Python 3.11+ from https://www.python.org/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo OK - Python installed
|
||||
echo.
|
||||
|
||||
echo [2/7] Checking Node.js...
|
||||
node --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Node.js not found!
|
||||
echo Please install Node.js 18+ from https://nodejs.org/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo OK - Node.js installed
|
||||
echo.
|
||||
|
||||
echo [3/7] Creating MySQL database...
|
||||
echo.
|
||||
echo Please enter MySQL root password when prompted
|
||||
echo (Leave blank if no password set)
|
||||
echo.
|
||||
|
||||
mysql -u root -p -e "DROP DATABASE IF EXISTS qquiz_db; DROP USER IF EXISTS 'qquiz'@'localhost'; CREATE DATABASE qquiz_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'qquiz'@'localhost' IDENTIFIED BY 'qquiz_password'; GRANT ALL PRIVILEGES ON qquiz_db.* TO 'qquiz'@'localhost'; FLUSH PRIVILEGES;" 2>nul
|
||||
|
||||
echo Database setup complete
|
||||
echo.
|
||||
|
||||
echo [4/7] Installing backend dependencies...
|
||||
cd backend
|
||||
|
||||
if not exist "venv" (
|
||||
python -m venv venv
|
||||
)
|
||||
|
||||
call venv\Scripts\activate.bat
|
||||
pip install -q -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
|
||||
echo Backend dependencies installed
|
||||
echo.
|
||||
|
||||
echo [5/7] Running database migrations...
|
||||
alembic upgrade head 2>nul
|
||||
|
||||
cd ..
|
||||
echo.
|
||||
|
||||
echo [6/7] Installing frontend dependencies...
|
||||
cd frontend
|
||||
|
||||
if not exist "node_modules" (
|
||||
call npm config set registry https://registry.npmmirror.com
|
||||
call npm install --silent
|
||||
)
|
||||
|
||||
cd ..
|
||||
echo.
|
||||
|
||||
echo [7/7] Starting services...
|
||||
echo.
|
||||
|
||||
start "QQuiz Backend" cmd /k "cd /d %~dp0..\backend && call venv\Scripts\activate.bat && echo Backend API: http://localhost:8000 && echo API Docs: http://localhost:8000/docs && echo. && uvicorn main:app --reload"
|
||||
|
||||
timeout /t 5 /nobreak >nul
|
||||
|
||||
start "QQuiz Frontend" cmd /k "cd /d %~dp0..\frontend && echo Frontend: http://localhost:3000 && echo. && npm start"
|
||||
|
||||
timeout /t 3 /nobreak >nul
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo SUCCESS! QQuiz is starting...
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Frontend: http://localhost:3000
|
||||
echo Backend: http://localhost:8000
|
||||
echo API Docs: http://localhost:8000/docs
|
||||
echo.
|
||||
echo Default login:
|
||||
echo Username: admin
|
||||
echo Password: admin123
|
||||
echo.
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
timeout /t 5 /nobreak >nul
|
||||
start http://localhost:3000
|
||||
|
||||
echo System is running...
|
||||
echo Close backend and frontend windows to stop
|
||||
echo.
|
||||
pause
|
||||
@@ -1,44 +0,0 @@
|
||||
@echo off
|
||||
title Start PostgreSQL Service
|
||||
color 0B
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Starting PostgreSQL Service
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
echo Attempting to start PostgreSQL service...
|
||||
echo.
|
||||
|
||||
net start postgresql-x64-18
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo.
|
||||
echo ========================================
|
||||
echo SUCCESS!
|
||||
echo ========================================
|
||||
echo.
|
||||
echo PostgreSQL service is now running
|
||||
echo Port: 5432
|
||||
echo.
|
||||
echo You can now run: scripts\fix_and_start.bat
|
||||
echo.
|
||||
) else (
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Failed to start service
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Please try starting manually:
|
||||
echo 1. Press Win+R
|
||||
echo 2. Type: services.msc
|
||||
echo 3. Find "postgresql-x64-18"
|
||||
echo 4. Right-click and select "Start"
|
||||
echo.
|
||||
echo OR run this script as Administrator:
|
||||
echo Right-click this bat file and select "Run as administrator"
|
||||
echo.
|
||||
)
|
||||
|
||||
pause
|
||||
@@ -1,94 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 启动服务
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz - 智能刷题与题库管理平台
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 检查是否在项目目录
|
||||
if not exist "docker-compose.yml" (
|
||||
echo [错误] 请在项目根目录运行此脚本!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 检查 .env 文件
|
||||
if not exist ".env" (
|
||||
echo [警告] .env 文件不存在,正在从模板创建...
|
||||
copy .env.example .env >nul
|
||||
echo [完成] 已创建 .env 文件,请编辑后重新运行此脚本
|
||||
notepad .env
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [1/4] 检查 Docker Desktop...
|
||||
docker info >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [提示] Docker Desktop 未运行,正在启动...
|
||||
echo.
|
||||
echo 请手动启动 Docker Desktop,然后按任意键继续...
|
||||
pause >nul
|
||||
|
||||
REM 再次检查
|
||||
docker info >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] Docker Desktop 启动失败!
|
||||
echo 请确保已安装 Docker Desktop: https://www.docker.com/products/docker-desktop/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
echo [完成] Docker Desktop 运行正常
|
||||
echo.
|
||||
|
||||
echo [2/4] 停止旧容器...
|
||||
docker-compose down >nul 2>&1
|
||||
echo [完成] 旧容器已停止
|
||||
echo.
|
||||
|
||||
echo [3/4] 启动服务(首次启动需要几分钟下载镜像)...
|
||||
docker-compose up -d
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 服务启动失败!
|
||||
echo 请查看错误信息或运行: docker-compose logs
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [完成] 服务启动成功
|
||||
echo.
|
||||
|
||||
echo [4/4] 等待服务就绪...
|
||||
timeout /t 5 /nobreak >nul
|
||||
echo.
|
||||
|
||||
echo ==========================================
|
||||
echo 服务已启动!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 前端地址: http://localhost:3000
|
||||
echo 后端地址: http://localhost:8000
|
||||
echo API 文档: http://localhost:8000/docs
|
||||
echo.
|
||||
echo 默认账户:
|
||||
echo 用户名: admin
|
||||
echo 密码: admin123
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 询问是否打开浏览器
|
||||
choice /C YN /M "是否打开浏览器"
|
||||
if %errorlevel% equ 1 (
|
||||
start http://localhost:3000
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 按任意键查看日志(Ctrl+C 退出日志查看)...
|
||||
pause >nul
|
||||
docker-compose logs -f
|
||||
@@ -1,134 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 启动服务 (国内优化版)
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz - 智能刷题与题库管理平台
|
||||
echo (国内网络优化版)
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 检查是否在项目目录
|
||||
if not exist "docker-compose.yml" (
|
||||
echo [错误] 请在项目根目录运行此脚本!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
REM 检查 .env 文件
|
||||
if not exist ".env" (
|
||||
echo [警告] .env 文件不存在,正在从模板创建...
|
||||
copy .env.example .env >nul
|
||||
echo [完成] 已创建 .env 文件,请编辑后重新运行此脚本
|
||||
notepad .env
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo [1/5] 检查 Docker Desktop...
|
||||
docker info >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] Docker Desktop 未运行!
|
||||
echo.
|
||||
echo 请先启动 Docker Desktop,然后按任意键继续...
|
||||
pause >nul
|
||||
|
||||
REM 再次检查
|
||||
docker info >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] Docker Desktop 启动失败!
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
)
|
||||
echo [完成] Docker Desktop 运行正常
|
||||
echo.
|
||||
|
||||
echo [2/5] 检查镜像加速器配置...
|
||||
docker info | findstr "Registry Mirrors" >nul
|
||||
if %errorlevel% neq 0 (
|
||||
echo [警告] 未检测到镜像加速器配置
|
||||
echo.
|
||||
echo 强烈建议配置镜像加速器以提高下载速度!
|
||||
echo.
|
||||
choice /C YN /M "是否现在配置镜像加速器"
|
||||
if %errorlevel% equ 1 (
|
||||
echo.
|
||||
echo 请按照提示配置 Docker Desktop 镜像加速器...
|
||||
call scripts\setup_docker_mirror.bat
|
||||
echo.
|
||||
echo 配置完成后,请重新运行此脚本
|
||||
pause
|
||||
exit /b 0
|
||||
)
|
||||
) else (
|
||||
echo [完成] 已配置镜像加速器
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [3/5] 停止旧容器...
|
||||
docker-compose down >nul 2>&1
|
||||
echo [完成]
|
||||
echo.
|
||||
|
||||
echo [4/5] 启动服务(首次启动需要几分钟)...
|
||||
echo.
|
||||
echo [提示] 如果下载镜像失败,请:
|
||||
echo 1. 配置镜像加速器(运行 setup_docker_mirror.bat)
|
||||
echo 2. 或使用备用启动方式(见下方提示)
|
||||
echo.
|
||||
|
||||
docker-compose up -d
|
||||
if %errorlevel% neq 0 (
|
||||
echo.
|
||||
echo [错误] 服务启动失败!
|
||||
echo.
|
||||
echo 可能的原因:
|
||||
echo 1. 网络问题 - 无法下载 Docker 镜像
|
||||
echo 2. 端口被占用 - 3000/8000/5432 端口已被使用
|
||||
echo 3. 配置错误 - 检查 .env 文件
|
||||
echo.
|
||||
echo 解决方案:
|
||||
echo 1. 配置镜像加速器: 运行 scripts\setup_docker_mirror.bat
|
||||
echo 2. 查看详细错误: docker-compose logs
|
||||
echo 3. 阅读文档: docs\DOCKER_MIRROR_SETUP.md
|
||||
echo.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [完成] 服务启动成功
|
||||
echo.
|
||||
|
||||
echo [5/5] 等待服务就绪...
|
||||
timeout /t 8 /nobreak >nul
|
||||
echo.
|
||||
|
||||
echo ==========================================
|
||||
echo 服务已启动!
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 前端地址: http://localhost:3000
|
||||
echo 后端地址: http://localhost:8000
|
||||
echo API 文档: http://localhost:8000/docs
|
||||
echo.
|
||||
echo 默认账户:
|
||||
echo 用户名: admin
|
||||
echo 密码: admin123
|
||||
echo.
|
||||
echo 镜像加速: 已配置国内镜像源
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
REM 询问是否打开浏览器
|
||||
choice /C YN /M "是否打开浏览器"
|
||||
if %errorlevel% equ 1 (
|
||||
start http://localhost:3000
|
||||
)
|
||||
|
||||
echo.
|
||||
echo 按任意键查看日志(Ctrl+C 退出日志查看)...
|
||||
pause >nul
|
||||
docker-compose logs -f
|
||||
12
scripts/view_backend_logs_follow.bat
Normal file
12
scripts/view_backend_logs_follow.bat
Normal file
@@ -0,0 +1,12 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
echo ========================================
|
||||
echo 实时查看后端日志
|
||||
echo ========================================
|
||||
echo.
|
||||
echo 按 Ctrl+C 可以停止查看日志
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
docker-compose logs -f backend
|
||||
Reference in New Issue
Block a user