Files
ollama_proxy_server/run_windows.bat

102 lines
3.4 KiB
Batchfile

@echo off
setlocal enabledelayedexpansion
:: ==================================================================
:: Ollama Proxy Server - Alembic-Free Installer for Windows
:: ==================================================================
:: This script now relies on the application to create the database.
set VENV_DIR=venv
set REQUIREMENTS_FILE=requirements.txt
set STATE_FILE=.setup_state
set SETUP_WIZARD_SCRIPT=setup_wizard.py
:: ------------------------------------------------------------------
:: 1. PRE-CHECKS
:: ------------------------------------------------------------------
echo [INFO] Checking for Python installation...
where python >nul 2>nul
if %errorlevel% neq 0 ( echo [ERROR] Python not found. & pause & exit /b 1 )
echo [SUCCESS] Python found.
set "CURRENT_STATE=0"
if exist "%STATE_FILE%" ( set /p CURRENT_STATE=<%STATE_FILE% )
if %CURRENT_STATE% GEQ 3 (
if not exist ".env" (
echo.
echo *****************************************************************
echo * [WARNING] Setup complete, but '.env' file is missing!
echo *****************************************************************
echo.
set /p REBUILD_CHOICE="Run setup wizard again? (y/n): "
if /i "!REBUILD_CHOICE!"=="y" (
echo [INFO] Resetting setup state...
del /f "%STATE_FILE%" >nul 2>nul
set "CURRENT_STATE=0"
echo.
) else (
echo [INFO] Aborting. & pause & exit /b 0
)
)
)
if %CURRENT_STATE% GEQ 3 goto start_server
:: ==================================================================
:: SETUP WIZARD (RESUMABLE)
:: ==================================================================
echo [INFO] Setup state is !CURRENT_STATE!/3. Starting or resuming installation...
if %CURRENT_STATE% GEQ 1 goto setup_step_2
echo [INFO] [1/3] Creating Python virtual environment...
python -m venv %VENV_DIR%
if %errorlevel% neq 0 ( echo [ERROR] Failed to create venv. & pause & exit /b 1 )
(echo 1) > %STATE_FILE%
echo [SUCCESS] Virtual environment created.
:setup_step_2
call .\%VENV_DIR%\Scripts\activate.bat
if %CURRENT_STATE% GEQ 2 goto setup_step_3
echo [INFO] [2/3] Installing dependencies...
pip install --no-cache-dir -r %REQUIREMENTS_FILE%
if %errorlevel% neq 0 ( echo [ERROR] Failed to install packages. & pause & exit /b 1 )
(echo 2) > %STATE_FILE%
echo [SUCCESS] Dependencies installed.
:setup_step_3
echo [INFO] [3/3] Launching Python setup wizard for configuration...
python %SETUP_WIZARD_SCRIPT%
if %errorlevel% neq 0 ( echo [ERROR] Setup wizard failed. & pause & exit /b 1 )
(echo 3) > %STATE_FILE%
echo [SUCCESS] .env file created.
echo.
echo [SUCCESS] Setup complete! The database will be created on first run.
echo.
:: ==================================================================
:: START THE SERVER
:: ==================================================================
:start_server
echo [INFO] Activating virtual environment...
call .\%VENV_DIR%\Scripts\activate.bat
echo [INFO] Setting Python Path...
set PYTHONPATH=.
set PORT_TO_USE=8080
for /f "usebackq tokens=1,* delims==" %%a in (".env") do (
if /i "%%a"=="PROXY_PORT" set "PORT_TO_USE=%%~b"
)
echo [INFO] Starting Ollama Proxy Server on port !PORT_TO_USE!...
echo To stop the server, simply close this window or press Ctrl+C.
echo.
uvicorn app.main:app --host 0.0.0.0 --port !PORT_TO_USE!
echo [INFO] Server has been stopped.
pause
exit /b