mirror of
https://github.com/handsomezhuzhu/QQuiz.git
synced 2026-02-20 20:10:14 +00:00
Document secure secrets and prune unused assets
This commit is contained in:
@@ -1,5 +0,0 @@
|
||||
@echo off
|
||||
REM 激活虚拟环境的批处理脚本
|
||||
cd /d "%~dp0..\backend"
|
||||
call venv\Scripts\activate.bat
|
||||
cmd /k
|
||||
@@ -1,89 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - System Status Check
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo QQuiz System Status Check
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
echo [1] Checking Python...
|
||||
python --version
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Python not found!
|
||||
) else (
|
||||
echo OK
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [2] Checking Node.js...
|
||||
node --version
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Node.js not found!
|
||||
) else (
|
||||
echo OK
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [3] Checking PostgreSQL...
|
||||
psql --version
|
||||
if %errorlevel% neq 0 (
|
||||
echo WARNING: PostgreSQL command not found in PATH
|
||||
) else (
|
||||
echo OK
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [4] Checking if backend is running...
|
||||
curl -s http://localhost:8000/health >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Backend is NOT running on port 8000
|
||||
echo.
|
||||
echo Backend must be started first!
|
||||
echo Run the backend window manually:
|
||||
echo cd backend
|
||||
echo venv\Scripts\activate.bat
|
||||
echo uvicorn main:app --reload
|
||||
) else (
|
||||
echo OK - Backend is running
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [5] Checking if frontend is running...
|
||||
curl -s http://localhost:3000 >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo WARNING: Frontend is NOT running on port 3000
|
||||
) else (
|
||||
echo OK - Frontend is running
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [6] Checking ports...
|
||||
echo Checking port 8000 (Backend):
|
||||
netstat -ano | findstr :8000
|
||||
echo.
|
||||
echo Checking port 3000 (Frontend):
|
||||
netstat -ano | findstr :3000
|
||||
echo.
|
||||
|
||||
echo [7] Checking .env configuration...
|
||||
if exist ".env" (
|
||||
echo OK - .env file exists
|
||||
findstr /C:"OPENAI_API_KEY=sk-" .env >nul
|
||||
if %errorlevel% neq 0 (
|
||||
echo WARNING: OPENAI_API_KEY may not be configured properly
|
||||
) else (
|
||||
echo OK - API Key appears to be configured
|
||||
)
|
||||
) else (
|
||||
echo ERROR: .env file not found!
|
||||
)
|
||||
echo.
|
||||
|
||||
echo ========================================
|
||||
echo Diagnosis Complete
|
||||
echo ========================================
|
||||
echo.
|
||||
pause
|
||||
@@ -1,140 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - Fix and Start
|
||||
color 0E
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo QQuiz - Automatic Fix and Start
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
REM Check if .env exists
|
||||
if not exist ".env" (
|
||||
echo Creating .env file...
|
||||
copy .env.example .env >nul
|
||||
echo.
|
||||
echo IMPORTANT: Edit .env and set your OPENAI_API_KEY
|
||||
echo Opening .env file...
|
||||
timeout /t 2 /nobreak >nul
|
||||
notepad .env
|
||||
echo.
|
||||
echo Save and close .env, then press any key to continue...
|
||||
pause >nul
|
||||
)
|
||||
|
||||
echo.
|
||||
echo Choose database option:
|
||||
echo.
|
||||
echo [1] Use Docker (Recommended - Easy)
|
||||
echo [2] Use Local PostgreSQL (Advanced)
|
||||
echo.
|
||||
choice /C 12 /M "Select option"
|
||||
|
||||
if %errorlevel% equ 1 (
|
||||
echo.
|
||||
echo Using Docker PostgreSQL...
|
||||
echo.
|
||||
|
||||
REM Check Docker
|
||||
docker --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Docker not found!
|
||||
echo.
|
||||
echo Please install Docker Desktop:
|
||||
echo https://www.docker.com/products/docker-desktop/
|
||||
echo.
|
||||
echo After installing Docker, run this script again.
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo Starting MySQL in Docker...
|
||||
docker-compose up -d mysql
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo.
|
||||
echo Docker failed to start. Trying to fix...
|
||||
docker-compose down
|
||||
docker-compose up -d mysql
|
||||
)
|
||||
|
||||
echo Waiting for database...
|
||||
timeout /t 10 /nobreak >nul
|
||||
|
||||
) else (
|
||||
echo.
|
||||
echo Using Local MySQL...
|
||||
echo.
|
||||
echo Make sure MySQL is running on port 3306
|
||||
echo.
|
||||
echo If you see connection errors, you need to:
|
||||
echo 1. Start MySQL service
|
||||
echo 2. Or install MySQL from https://dev.mysql.com/downloads/installer/
|
||||
echo 3. Or choose option 1 to use Docker instead
|
||||
echo.
|
||||
pause
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Starting Backend...
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd backend
|
||||
|
||||
if not exist "venv\Scripts\activate.bat" (
|
||||
echo Creating virtual environment...
|
||||
python -m venv venv
|
||||
)
|
||||
|
||||
echo Installing dependencies...
|
||||
call venv\Scripts\activate.bat
|
||||
pip install -q -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
|
||||
echo.
|
||||
echo Running database migrations...
|
||||
alembic upgrade head
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo.
|
||||
echo WARNING: Database migration failed
|
||||
echo The app will try to create tables automatically
|
||||
echo.
|
||||
)
|
||||
|
||||
cd ..
|
||||
|
||||
echo.
|
||||
echo Starting services...
|
||||
echo.
|
||||
|
||||
start "QQuiz Backend" cmd /k "cd /d %~dp0..backend && call venv\Scripts\activate.bat && echo Backend: http://localhost:8000 && echo Docs: http://localhost:8000/docs && echo. && uvicorn main:app --reload"
|
||||
|
||||
timeout /t 8 /nobreak >nul
|
||||
|
||||
start "QQuiz Frontend" cmd /k "cd /d %~dp0..frontend && echo Frontend: http://localhost:3000 && echo. && npm start"
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo SUCCESS! QQuiz is starting...
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Frontend: http://localhost:3000
|
||||
echo Backend: http://localhost:8000
|
||||
echo.
|
||||
echo Login: admin / admin123
|
||||
echo.
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
timeout /t 5 /nobreak >nul
|
||||
start http://localhost:3000
|
||||
|
||||
echo.
|
||||
echo System is running...
|
||||
echo Close backend/frontend windows to stop
|
||||
echo.
|
||||
pause
|
||||
@@ -1,48 +0,0 @@
|
||||
@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,31 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - Restart Backend
|
||||
color 0B
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Restarting Backend Container
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
echo Restarting backend...
|
||||
docker-compose restart backend
|
||||
|
||||
echo.
|
||||
echo Waiting for backend to start...
|
||||
timeout /t 5 /nobreak >nul
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Backend Restarted!
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Backend URL: http://localhost:8000
|
||||
echo API Docs: http://localhost:8000/docs
|
||||
echo.
|
||||
echo View logs: scripts\view_backend_logs.bat
|
||||
echo.
|
||||
|
||||
pause
|
||||
@@ -1,60 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz Backend - 本地运行
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz Backend - 本地启动
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0..\backend"
|
||||
|
||||
REM 检查虚拟环境是否存在
|
||||
if not exist "venv\Scripts\activate.bat" (
|
||||
echo [1/5] 创建虚拟环境...
|
||||
python -m venv venv
|
||||
echo [完成]
|
||||
echo.
|
||||
) else (
|
||||
echo [1/5] 虚拟环境已存在
|
||||
echo.
|
||||
)
|
||||
|
||||
echo [2/5] 激活虚拟环境...
|
||||
call venv\Scripts\activate.bat
|
||||
echo [完成]
|
||||
echo.
|
||||
|
||||
echo [3/5] 安装依赖...
|
||||
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 依赖安装失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [完成]
|
||||
echo.
|
||||
|
||||
echo [4/5] 运行数据库迁移...
|
||||
alembic upgrade head
|
||||
if %errorlevel% neq 0 (
|
||||
echo [警告] 数据库迁移失败,请检查 PostgreSQL 是否运行
|
||||
echo.
|
||||
)
|
||||
echo.
|
||||
|
||||
echo [5/5] 启动后端服务...
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 后端服务启动中...
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo API 地址: http://localhost:8000
|
||||
echo API 文档: http://localhost:8000/docs
|
||||
echo.
|
||||
echo 按 Ctrl+C 停止服务
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
uvicorn main:app --reload
|
||||
@@ -1,44 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz Frontend - 本地运行
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo QQuiz Frontend - 本地启动
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0..\frontend"
|
||||
|
||||
REM 检查 node_modules 是否存在
|
||||
if not exist "node_modules" (
|
||||
echo [1/2] 安装前端依赖(首次运行需要几分钟)...
|
||||
echo.
|
||||
echo [提示] 使用淘宝镜像加速下载...
|
||||
call npm config set registry https://registry.npmmirror.com
|
||||
call npm install
|
||||
if %errorlevel% neq 0 (
|
||||
echo [错误] 依赖安装失败
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo [完成]
|
||||
echo.
|
||||
) else (
|
||||
echo [1/2] 依赖已安装
|
||||
echo.
|
||||
)
|
||||
|
||||
echo [2/2] 启动前端服务...
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 前端服务启动中...
|
||||
echo ==========================================
|
||||
echo.
|
||||
echo 前端地址: http://localhost:3000
|
||||
echo.
|
||||
echo 按 Ctrl+C 停止服务
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
call npm start
|
||||
@@ -1,34 +0,0 @@
|
||||
@echo off
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo Creating .env configuration file...
|
||||
echo.
|
||||
|
||||
(
|
||||
echo DATABASE_URL=mysql+aiomysql://qquiz:qquiz_password@localhost:3306/qquiz_db
|
||||
echo SECRET_KEY=qquiz-secret-key-for-development-change-in-production-32chars
|
||||
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 ALLOW_REGISTRATION=true
|
||||
echo MAX_UPLOAD_SIZE_MB=10
|
||||
echo MAX_DAILY_UPLOADS=20
|
||||
echo CORS_ORIGINS=http://localhost:3000,http://127.0.0.1:3000
|
||||
echo UPLOAD_DIR=./uploads
|
||||
) > .env
|
||||
|
||||
echo Done! .env file created.
|
||||
echo.
|
||||
echo IMPORTANT: Please edit OPENAI_API_KEY in .env file
|
||||
echo.
|
||||
echo Opening .env file now...
|
||||
timeout /t 2 /nobreak >nul
|
||||
|
||||
notepad .env
|
||||
|
||||
echo.
|
||||
echo Configuration complete!
|
||||
echo Now you can run: start_app.bat
|
||||
echo.
|
||||
pause
|
||||
@@ -1,44 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz Backend Server
|
||||
color 0B
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Starting QQuiz Backend Server
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0..\backend"
|
||||
|
||||
if not exist "venv\Scripts\activate.bat" (
|
||||
echo Creating virtual environment...
|
||||
python -m venv venv
|
||||
)
|
||||
|
||||
echo Activating virtual environment...
|
||||
call venv\Scripts\activate.bat
|
||||
|
||||
echo.
|
||||
echo Installing/updating dependencies...
|
||||
pip install -q -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
|
||||
|
||||
echo.
|
||||
echo Running database migrations...
|
||||
alembic upgrade head
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Backend Server Starting...
|
||||
echo ========================================
|
||||
echo.
|
||||
echo API URL: http://localhost:8000
|
||||
echo API Docs: http://localhost:8000/docs
|
||||
echo Health: http://localhost:8000/health
|
||||
echo.
|
||||
echo Press Ctrl+C to stop
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
uvicorn main:app --host 0.0.0.0 --port 8000 --reload
|
||||
|
||||
pause
|
||||
@@ -1,34 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz Frontend Server
|
||||
color 0B
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Starting QQuiz Frontend Server
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0..\frontend"
|
||||
|
||||
if not exist "node_modules" (
|
||||
echo Installing dependencies (first time only)...
|
||||
call npm config set registry https://registry.npmmirror.com
|
||||
call npm install
|
||||
)
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo Frontend Server Starting...
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Frontend URL: http://localhost:3000
|
||||
echo.
|
||||
echo Make sure backend is running on port 8000!
|
||||
echo.
|
||||
echo Press Ctrl+C to stop
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
npm start
|
||||
|
||||
pause
|
||||
@@ -1,74 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - Start with Docker Database
|
||||
color 0B
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo QQuiz - Starting with Docker DB
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo [1/4] Checking Docker...
|
||||
docker --version >nul 2>&1
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Docker not found!
|
||||
echo Please install Docker Desktop from https://www.docker.com/
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
echo OK - Docker installed
|
||||
echo.
|
||||
|
||||
echo [2/4] Starting MySQL in Docker...
|
||||
docker-compose up -d mysql
|
||||
|
||||
if %errorlevel% neq 0 (
|
||||
echo ERROR: Failed to start MySQL
|
||||
echo Try: docker-compose down
|
||||
echo Then run this script again
|
||||
pause
|
||||
exit /b 1
|
||||
)
|
||||
|
||||
echo OK - MySQL started
|
||||
echo Waiting for database to be ready...
|
||||
echo.
|
||||
timeout /t 10 /nobreak >nul
|
||||
echo.
|
||||
|
||||
echo [3/4] Starting Backend...
|
||||
start "QQuiz Backend" cmd /k "cd /d %~dp0..backend && call venv\Scripts\activate.bat && echo ======================================== && echo QQuiz Backend Server && echo ======================================== && echo. && echo API: http://localhost:8000 && echo Docs: http://localhost:8000/docs && echo. && alembic upgrade head && echo. && uvicorn main:app --reload"
|
||||
|
||||
echo Waiting for backend to start...
|
||||
timeout /t 8 /nobreak >nul
|
||||
echo.
|
||||
|
||||
echo [4/4] Starting Frontend...
|
||||
start "QQuiz Frontend" cmd /k "cd /d %~dp0..frontend && echo ======================================== && echo QQuiz Frontend Server && echo ======================================== && echo. && echo URL: http://localhost:3000 && echo. && npm start"
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo SUCCESS! QQuiz is starting...
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Frontend: http://localhost:3000
|
||||
echo Backend: http://localhost:8000
|
||||
echo Database: Running in Docker
|
||||
echo.
|
||||
echo Login:
|
||||
echo Username: admin
|
||||
echo Password: admin123
|
||||
echo.
|
||||
echo ========================================
|
||||
echo.
|
||||
|
||||
timeout /t 5 /nobreak >nul
|
||||
start http://localhost:3000
|
||||
|
||||
echo System running...
|
||||
echo To stop: Close the backend/frontend windows
|
||||
echo To stop database: docker-compose down
|
||||
echo.
|
||||
pause
|
||||
@@ -1,24 +0,0 @@
|
||||
@echo off
|
||||
chcp 65001 >nul
|
||||
title QQuiz - 停止服务
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ==========================================
|
||||
echo 停止 QQuiz 服务
|
||||
echo ==========================================
|
||||
echo.
|
||||
|
||||
docker-compose down
|
||||
|
||||
if %errorlevel% equ 0 (
|
||||
echo.
|
||||
echo [完成] 服务已停止
|
||||
) else (
|
||||
echo.
|
||||
echo [错误] 停止服务失败
|
||||
)
|
||||
|
||||
echo.
|
||||
pause
|
||||
@@ -1,15 +0,0 @@
|
||||
@echo off
|
||||
title QQuiz - Backend Logs
|
||||
color 0B
|
||||
|
||||
cd /d "%~dp0.."
|
||||
|
||||
echo.
|
||||
echo ========================================
|
||||
echo QQuiz Backend Logs (Real-time)
|
||||
echo ========================================
|
||||
echo.
|
||||
echo Press Ctrl+C to stop viewing logs
|
||||
echo.
|
||||
|
||||
docker-compose logs -f --tail=50 backend
|
||||
@@ -1,12 +0,0 @@
|
||||
@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