forked from ParisNeo/ollama_proxy_server
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrun_windows.bat
More file actions
102 lines (84 loc) · 3.43 KB
/
run_windows.bat
File metadata and controls
102 lines (84 loc) · 3.43 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
@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