Files
FastapiAdmin/deploy.bat
T
zhangtao 94fb6fbf9c chore: 禁用 docs 和 app 的开源部署配置
- docker-compose.yaml: 注释掉 nginx 挂载 app 和 docs 目录
- nginx.conf: 注释掉 / 和 /app 路由配置
- deploy.bat: 注释掉 app 和 docs 服务启动
- docker/README.md: 更新文档说明
- README.md: 更新文档,使用外部图片链接,标记不开源内容

本地文件保留,可通过取消注释恢复使用
2026-05-17 21:26:55 +08:00

4.6 KiB

@echo off
setlocal EnableDelayedExpansion
 
set "SCRIPT_DIR=%~dp0"
set "LOG_DIR=%SCRIPT_DIR%logs"
if not exist "%LOG_DIR%" mkdir "%LOG_DIR%"
 
set "RED="
set "GREEN="
set "YELLOW="
set "BLUE="
set "CYAN="
set "RESET="
 
if "%1"=="" goto :show_help
 
if "%1"=="start" goto :start_all
if "%1"=="stop" goto :stop_all
if "%1"=="restart" goto :restart_all
if "%1"=="status" goto :check_status
if "%1"=="help" goto :show_help
if "%1"=="--help" goto :show_help
if "%1"=="-h" goto :show_help
 
echo %RED%❌ 未知参数: %1%RESET%
goto :show_help
 
:: ==================== 帮助 ====================
:show_help
echo %BLUE%使用说明:%RESET%
echo %~nx0 start - 启动所有服务
echo %~nx0 stop - 停止所有服务
echo %~nx0 restart - 重启所有服务
echo %~nx0 status - 检查服务状态
echo.
echo %BLUE%服务说明:%RESET%
echo 🚀 后端服务 - FastAPI 后端 (端口: 8001)
echo 🌐 前端 Web - Vue 前端 (端口: 5173)
REM echo 📱 前端 App - UniApp 应用 (端口: 8080) [已禁用:不开源]
REM echo 📚 文档服务 - VitePress 文档 (端口: 5174) [已禁用:不开源]
echo.
echo %BLUE%日志位置:%RESET%
echo %LOG_DIR%\
goto :end
 
:: ==================== 启动 ====================
:start_all
echo %CYAN%🚀 开始启动所有服务...%RESET%
echo.
 
call :start_service "backend" "%SCRIPT_DIR%backend" "uv run main.py run --env=dev" "FastapiAdmin.Backend" "%BACKEND_PID%"
call :start_service "frontend" "%SCRIPT_DIR%frontend\web" "pnpm dev" "FastapiAdmin.Web" "%WEB_PID%"
REM call :start_service "app" "%SCRIPT_DIR%frontend\app" "pnpm dev:h5" "FastapiAdmin.App" "%APP_PID%"
REM call :start_service "docs" "%SCRIPT_DIR%frontend\docs" "pnpm dev" "FastapiAdmin.Docs" "%DOCS_PID%"
 
echo.
echo %GREEN%🎉 所有服务启动完成!%RESET%
echo.
echo %BLUE%访问地址:%RESET%
echo 🚀 后端 API: http://localhost:8001/api/v1/docs
echo 🌐 前端 Web: http://localhost:5173
REM echo 📱 前端 App: http://localhost:8080 [已禁用]
REM echo 📚 文档服务: http://localhost:5174 [已禁用]
echo.
goto :end
 
:start_service
set "NAME=%~1"
set "DIR=%~2"
set "CMD=%~3"
set "TITLE=%~4"
 
echo %BLUE%🔄 启动 %NAME% 服务...%RESET%
set "PID_FILE=%LOG_DIR%\%NAME%.pid"
set "LOG_FILE=%LOG_DIR%\%NAME%.log"
 
if exist "%PID_FILE%" (
set /p OLD_PID=<"%PID_FILE%"
tasklist /FI "PID eq !OLD_PID!" 2>NUL | findstr /I "!OLD_PID!" >NUL
if !errorlevel!==0 (
echo %YELLOW%⚠️ %NAME% 已在运行 (PID: !OLD_PID!)%RESET%
exit /b
)
)
 
cd /d "%DIR%"
start "%TITLE%" /B %CMD% > "%LOG_FILE%" 2>&1
:: 通过窗口标题获取准确 PID
for /f "tokens=2 delims= " %%a in ('tasklist /FI "WINDOWTITLE eq %TITLE%" /NH 2^>NUL') do (
echo %%a > "%PID_FILE%"
)
echo %GREEN%✅ %NAME% 已启动 (日志: %LOG_FILE%)%RESET%
cd /d "%SCRIPT_DIR%"
exit /b
 
:: ==================== 停止 ====================
:stop_all
echo %CYAN%⏹️ 开始停止所有服务...%RESET%
echo.
call :stop_service "backend"
call :stop_service "frontend"
REM call :stop_service "app"
REM call :stop_service "docs"
echo %GREEN%🎉 所有服务已停止!%RESET%
echo.
goto :end
 
:stop_service
set "NAME=%~1"
set "PID_FILE=%LOG_DIR%\%NAME%.pid"
 
if exist "%PID_FILE%" (
set /p PID=<"%PID_FILE%"
tasklist /FI "PID eq !PID!" 2>NUL | findstr /I "!PID!" >NUL
if !errorlevel!==0 (
taskkill /PID !PID! /F >NUL 2>&1
echo %GREEN%✅ 已停止 %NAME% (PID: !PID!)%RESET%
)
del "%PID_FILE%" 2>NUL
) else (
echo %YELLOW%⚠️ %NAME% 未在运行%RESET%
)
exit /b
 
:: ==================== 重启 ====================
:restart_all
echo %CYAN%🔄 重启所有服务...%RESET%
call :stop_all
echo.
call :start_all
goto :end
 
:: ==================== 状态 ====================
:check_status
echo %CYAN%🔍 检查服务状态...%RESET%
echo.
call :check_service "backend"
call :check_service "frontend"
REM call :check_service "app"
REM call :check_service "docs"
goto :end
 
:check_service
set "NAME=%~1"
set "PID_FILE=%LOG_DIR%\%NAME%.pid"
 
if exist "%PID_FILE%" (
set /p PID=<"%PID_FILE%"
tasklist /FI "PID eq !PID!" 2>NUL | findstr /I "!PID!" >NUL
if !errorlevel!==0 (
echo %GREEN%✅ %NAME%: 运行中 (PID: !PID!)%RESET%
) else (
echo %RED%❌ %NAME%: 已停止%RESET%
del "%PID_FILE%" 2>NUL
)
) else (
echo %RED%❌ %NAME%: 未启动%RESET%
)
exit /b
 
:: ==================== 结束 ====================
:end
echo %GREEN%========================================%RESET%
endlocal