|
|
|
@ -1,81 +1,142 @@
|
|
|
|
|
@echo off
|
|
|
|
|
setlocal enabledelayedexpansion
|
|
|
|
|
title Gold Miner Game Launcher
|
|
|
|
|
|
|
|
|
|
echo ==== 黄金矿工游戏系统部署脚本 ====
|
|
|
|
|
echo 正在检查环境...
|
|
|
|
|
REM Process command line arguments
|
|
|
|
|
if "%1"=="1" goto backend_direct
|
|
|
|
|
if "%1"=="2" goto frontend_direct
|
|
|
|
|
|
|
|
|
|
:: 检查Docker是否安装
|
|
|
|
|
docker --version > nul 2>&1
|
|
|
|
|
if %errorlevel% neq 0 (
|
|
|
|
|
echo 错误: 未检测到Docker. 请安装Docker后再运行此脚本.
|
|
|
|
|
pause
|
|
|
|
|
exit /b
|
|
|
|
|
)
|
|
|
|
|
:menu
|
|
|
|
|
cls
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Gold Miner Game Launcher
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo.
|
|
|
|
|
echo Current computer IP address:
|
|
|
|
|
ipconfig | find "IPv4"
|
|
|
|
|
echo.
|
|
|
|
|
echo Please note the IP address shown above. Other computers can access the game using this address.
|
|
|
|
|
echo Other computers should use http://[your-IP-address]:8080 to access the game.
|
|
|
|
|
echo.
|
|
|
|
|
echo Please select an option:
|
|
|
|
|
echo [1] Start Backend Server
|
|
|
|
|
echo [2] Start Frontend Server
|
|
|
|
|
echo [3] Start Both Frontend and Backend (Two Windows)
|
|
|
|
|
echo [4] Exit
|
|
|
|
|
echo.
|
|
|
|
|
set /p choice=Enter your choice (1-4):
|
|
|
|
|
|
|
|
|
|
:: 检查Docker Compose是否安装
|
|
|
|
|
docker compose version > nul 2>&1
|
|
|
|
|
if %errorlevel% neq 0 (
|
|
|
|
|
echo 错误: 未检测到Docker Compose. 请安装Docker Compose后再运行此脚本.
|
|
|
|
|
pause
|
|
|
|
|
exit /b
|
|
|
|
|
)
|
|
|
|
|
if "%choice%"=="1" goto backend
|
|
|
|
|
if "%choice%"=="2" goto frontend
|
|
|
|
|
if "%choice%"=="3" goto both
|
|
|
|
|
if "%choice%"=="4" goto end
|
|
|
|
|
echo Invalid option, please try again.
|
|
|
|
|
timeout /t 2 >nul
|
|
|
|
|
goto menu
|
|
|
|
|
|
|
|
|
|
:backend_direct
|
|
|
|
|
REM Start backend directly from command line
|
|
|
|
|
title Gold Miner - Backend Server
|
|
|
|
|
goto backend_start
|
|
|
|
|
|
|
|
|
|
:backend
|
|
|
|
|
cls
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Starting Backend Server
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo.
|
|
|
|
|
|
|
|
|
|
:backend_start
|
|
|
|
|
cd /d %~dp0
|
|
|
|
|
|
|
|
|
|
echo Docker环境检查通过!
|
|
|
|
|
|
|
|
|
|
:: 检查.env文件是否存在,不存在则从示例文件创建
|
|
|
|
|
if not exist ".env" (
|
|
|
|
|
echo 未发现.env文件, 从示例创建...
|
|
|
|
|
if exist ".env.example" (
|
|
|
|
|
copy .env.example .env
|
|
|
|
|
echo 已创建.env文件. 请检查并根据需要修改配置.
|
|
|
|
|
) else (
|
|
|
|
|
echo 错误: 未找到.env.example文件. 正在创建基本配置...
|
|
|
|
|
echo # 应用配置> .env
|
|
|
|
|
echo FLASK_ENV=production>> .env
|
|
|
|
|
echo PORT=8080>> .env
|
|
|
|
|
echo.>> .env
|
|
|
|
|
echo # 数据库配置>> .env
|
|
|
|
|
echo DB_HOST=mysql2.sqlpub.com>> .env
|
|
|
|
|
echo DB_PORT=3307>> .env
|
|
|
|
|
echo DB_USER=goldminer>> .env
|
|
|
|
|
echo DB_PASSWORD=nBAWq9DDwJ14Fugq>> .env
|
|
|
|
|
echo DB_NAME=goldminer>> .env
|
|
|
|
|
echo.>> .env
|
|
|
|
|
echo # 安全配置>> .env
|
|
|
|
|
echo SECRET_KEY=dev_key_for_goldminer>> .env
|
|
|
|
|
echo ADMIN_SETUP_KEY=goldminer_admin_setup_key>> .env
|
|
|
|
|
echo.>> .env
|
|
|
|
|
echo # 时区>> .env
|
|
|
|
|
echo TZ=Asia/Shanghai>> .env
|
|
|
|
|
)
|
|
|
|
|
REM Activate virtual environment if it exists
|
|
|
|
|
if exist "..\..\.venv\Scripts\activate.bat" (
|
|
|
|
|
call "..\..\.venv\Scripts\activate.bat"
|
|
|
|
|
echo Virtual environment activated
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
:: 构建并启动容器
|
|
|
|
|
echo 正在构建并启动容器...
|
|
|
|
|
docker compose down
|
|
|
|
|
docker compose build --no-cache
|
|
|
|
|
docker compose up -d
|
|
|
|
|
|
|
|
|
|
:: 检查容器是否成功启动
|
|
|
|
|
timeout /t 5 /nobreak > nul
|
|
|
|
|
docker compose ps | find "goldminer-backend" > nul
|
|
|
|
|
if %errorlevel% neq 0 (
|
|
|
|
|
echo 错误: 容器未能成功启动. 请查看日志排查问题:
|
|
|
|
|
docker compose logs
|
|
|
|
|
REM Check backend dependencies
|
|
|
|
|
echo Installing backend dependencies...
|
|
|
|
|
cd backend
|
|
|
|
|
python -m pip install -r requirements.txt
|
|
|
|
|
|
|
|
|
|
REM Run the backend server with host=0.0.0.0
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Starting Backend Server...
|
|
|
|
|
echo Backend will listen on all network interfaces (0.0.0.0:5000)
|
|
|
|
|
echo Connecting to cloud database: mysql2.sqlpub.com:3307
|
|
|
|
|
echo ===================================
|
|
|
|
|
python app.py
|
|
|
|
|
pause
|
|
|
|
|
if "%1"=="" goto menu
|
|
|
|
|
exit /b
|
|
|
|
|
|
|
|
|
|
:frontend_direct
|
|
|
|
|
REM Start frontend directly from command line
|
|
|
|
|
title Gold Miner - Frontend Server
|
|
|
|
|
goto frontend_start
|
|
|
|
|
|
|
|
|
|
:frontend
|
|
|
|
|
cls
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Starting Frontend Server
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo.
|
|
|
|
|
|
|
|
|
|
:frontend_start
|
|
|
|
|
cd /d %~dp0
|
|
|
|
|
|
|
|
|
|
REM Switch to frontend directory
|
|
|
|
|
cd frontend
|
|
|
|
|
echo Current directory: %cd%
|
|
|
|
|
|
|
|
|
|
REM Check if npm is installed
|
|
|
|
|
where npm >nul 2>nul
|
|
|
|
|
if %ERRORLEVEL% NEQ 0 (
|
|
|
|
|
echo Error: npm not found. Please install Node.js
|
|
|
|
|
pause
|
|
|
|
|
exit /b
|
|
|
|
|
goto menu
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
:: 获取端口号
|
|
|
|
|
set PORT=8080
|
|
|
|
|
for /f "tokens=1,2 delims==" %%a in (.env) do (
|
|
|
|
|
if "%%a"=="PORT" set PORT=%%b
|
|
|
|
|
)
|
|
|
|
|
REM Install dependencies
|
|
|
|
|
echo Installing frontend dependencies...
|
|
|
|
|
call npm install
|
|
|
|
|
call npm install vue-router@4 axios --save
|
|
|
|
|
|
|
|
|
|
echo ==== 黄金矿工游戏系统已成功部署! ====
|
|
|
|
|
echo 前端访问地址: http://localhost:%PORT%
|
|
|
|
|
echo 管理员初始账号: admin
|
|
|
|
|
echo 管理员初始密码: admin
|
|
|
|
|
REM Run the frontend server with host=0.0.0.0
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Starting Frontend Server...
|
|
|
|
|
echo Frontend will listen on all network interfaces (0.0.0.0:8080)
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Local access URL: http://localhost:8080
|
|
|
|
|
echo LAN access URL: http://[your-IP-address]:8080
|
|
|
|
|
echo ===================================
|
|
|
|
|
call npm run serve -- --host 0.0.0.0
|
|
|
|
|
pause
|
|
|
|
|
if "%1"=="" goto menu
|
|
|
|
|
exit /b
|
|
|
|
|
|
|
|
|
|
:both
|
|
|
|
|
cls
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo Starting Both Frontend and Backend Servers
|
|
|
|
|
echo ===================================
|
|
|
|
|
echo.
|
|
|
|
|
echo Two windows will open to run frontend and backend servers separately.
|
|
|
|
|
echo Do not close either window until you want to stop the game.
|
|
|
|
|
echo.
|
|
|
|
|
echo 提示: 按任意键退出,系统将继续在后台运行
|
|
|
|
|
pause
|
|
|
|
|
echo Press any key to continue...
|
|
|
|
|
pause >nul
|
|
|
|
|
|
|
|
|
|
REM Start backend in a new window
|
|
|
|
|
start cmd /k "%~f0" 1
|
|
|
|
|
|
|
|
|
|
REM Start frontend in a new window
|
|
|
|
|
start cmd /k "%~f0" 2
|
|
|
|
|
|
|
|
|
|
goto menu
|
|
|
|
|
|
|
|
|
|
:end
|
|
|
|
|
echo Thank you for using Gold Miner Game Launcher!
|
|
|
|
|
timeout /t 2 >nul
|
|
|
|
|
exit /b 0
|