Files
SPipe/start-gispipe.bat
T
bjkim1 21ebb16fb7 SPipe 데모 v2 (2026-10-30) 서버 배포본
- SPipe_server_2026-10-30.zip 내용을 풀어서 등록 (압축 파일은 올리지 않음)
- README에 데모 v2 서버 업데이트 순서 추가, 저장소에 없는 문서 목차 정리
- 패치내역을 docs/로 이동, _worklog.md 추가
- 임시 파일(backend/temp.*)과 API 키가 든 파일은 제외
2026-10-30 11:00:46 +09:00

113 lines
3.0 KiB
Batchfile

@echo off
title SPipe Launcher
echo ========================================================
echo SPipe Local WebApp Launcher
echo ========================================================
echo.
:: 1. Working directory and paths
set "ROOT_DIR=%~dp0"
set "PYTHON_EXE=%ROOT_DIR%.venv\Scripts\python.exe"
cd /d "%ROOT_DIR%"
echo [1/5] Working directory: %CD%
:: 2. Check Node / npm
where npm >nul 2>&1
if errorlevel 1 goto ERR_NO_NPM
echo [2/5] Node and npm verified.
:: 3. Check Python executable
if not exist "%PYTHON_EXE%" goto ERR_NO_VENV
echo [3/5] Python virtual environment verified.
:: 4. Check if ports are already busy
set PORT8000_BUSY=0
set PORT5173_BUSY=0
netstat -ano | findstr /R /C:":8000 .*LISTENING" >nul 2>&1
if not errorlevel 1 set PORT8000_BUSY=1
netstat -ano | findstr /R /C:":5173 .*LISTENING" >nul 2>&1
if not errorlevel 1 set PORT5173_BUSY=1
if "%PORT8000_BUSY%"=="1" if "%PORT5173_BUSY%"=="1" goto ALREADY_RUNNING
:: 5. Launch Backend and Frontend
echo [4/5] Launching SPipe servers...
if "%PORT8000_BUSY%"=="0" (
echo - Starting SPipe API Backend on Port 8000
start "SPipe API" cmd /k "cd /d "%ROOT_DIR%" && "%PYTHON_EXE%" -m uvicorn backend.main:app --host 127.0.0.1 --port 8000"
) else (
echo - SPipe API Backend is already active on Port 8000
)
if "%PORT5173_BUSY%"=="0" (
echo - Starting SPipe Web Frontend on Port 5173
start "SPipe Web" cmd /k "cd /d "%ROOT_DIR%" && npm run dev"
) else (
echo - SPipe Web Frontend is already active on Port 5173
)
:: 6. Healthcheck wait loop: Wait until both ports are listening
echo [5/5] Waiting for both servers to be ready...
set WAIT_COUNT=0
:WAIT_LOOP
ping 127.0.0.1 -n 2 >nul
netstat -ano | findstr /R /C:":8000 .*LISTENING" >nul 2>&1
if errorlevel 1 goto RETRY_WAIT
netstat -ano | findstr /R /C:":5173 .*LISTENING" >nul 2>&1
if errorlevel 1 goto RETRY_WAIT
goto READY_LAUNCH
:RETRY_WAIT
set /a WAIT_COUNT+=1
if %WAIT_COUNT% lss 15 (
echo - Initializing servers... [%WAIT_COUNT%/15]
goto WAIT_LOOP
)
:READY_LAUNCH
echo.
echo [DONE] Both servers are online and ready!
echo [DONE] Opening browser: http://127.0.0.1:5173
start http://127.0.0.1:5173
echo.
echo ========================================================
echo * Backend API : http://127.0.0.1:8000
echo * Web Frontend : http://127.0.0.1:5173
echo.
echo * To stop servers, double-click: stop-gispipe.bat
echo ========================================================
echo.
pause
exit /b 0
:ALREADY_RUNNING
echo [NOTICE] Both Backend and Frontend are already running.
echo [NOTICE] Opening browser: http://127.0.0.1:5173
start http://127.0.0.1:5173
echo.
pause
exit /b 0
:ERR_NO_NPM
echo [ERROR] npm was not found in PATH.
echo Please install Node.js LTS from https://nodejs.org
echo.
pause
exit /b 1
:ERR_NO_VENV
echo [ERROR] %PYTHON_EXE% was not found.
echo Please create .venv and install requirements first.
echo.
pause
exit /b 1