start_windows.bat 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. :: This method is not recommended, and we recommend you use the `start.sh` file with WSL instead.
  2. @echo off
  3. SETLOCAL ENABLEDELAYEDEXPANSION
  4. :: Get the directory of the current script
  5. SET "SCRIPT_DIR=%~dp0"
  6. cd /d "%SCRIPT_DIR%" || exit /b
  7. :: Add conditional Playwright browser installation
  8. IF /I "%WEB_LOADER_ENGINE%" == "playwright" (
  9. IF "%PLAYWRIGHT_WS_URL%" == "" (
  10. echo Installing Playwright browsers...
  11. playwright install chromium
  12. playwright install-deps chromium
  13. )
  14. python -c "import nltk; nltk.download('punkt_tab')"
  15. )
  16. SET "KEY_FILE=.webui_secret_key"
  17. IF NOT "%WEBUI_SECRET_KEY_FILE%" == "" (
  18. SET "KEY_FILE=%WEBUI_SECRET_KEY_FILE%"
  19. )
  20. IF "%PORT%"=="" SET PORT=8080
  21. IF "%HOST%"=="" SET HOST=0.0.0.0
  22. SET "WEBUI_SECRET_KEY=%WEBUI_SECRET_KEY%"
  23. SET "WEBUI_JWT_SECRET_KEY=%WEBUI_JWT_SECRET_KEY%"
  24. :: Check if WEBUI_SECRET_KEY and WEBUI_JWT_SECRET_KEY are not set
  25. IF "%WEBUI_SECRET_KEY% %WEBUI_JWT_SECRET_KEY%" == " " (
  26. echo Loading WEBUI_SECRET_KEY from file, not provided as an environment variable.
  27. IF NOT EXIST "%KEY_FILE%" (
  28. echo Generating WEBUI_SECRET_KEY
  29. :: Generate a random value to use as a WEBUI_SECRET_KEY in case the user didn't provide one
  30. SET /p WEBUI_SECRET_KEY=<nul
  31. FOR /L %%i IN (1,1,12) DO SET /p WEBUI_SECRET_KEY=<!random!>>%KEY_FILE%
  32. echo WEBUI_SECRET_KEY generated
  33. )
  34. echo Loading WEBUI_SECRET_KEY from %KEY_FILE%
  35. SET /p WEBUI_SECRET_KEY=<%KEY_FILE%
  36. )
  37. :: Execute uvicorn
  38. SET "WEBUI_SECRET_KEY=%WEBUI_SECRET_KEY%"
  39. IF "%UVICORN_WORKERS%"=="" SET UVICORN_WORKERS=1
  40. uvicorn open_webui.main:app --host "%HOST%" --port "%PORT%" --forwarded-allow-ips '*' --workers %UVICORN_WORKERS% --ws auto
  41. :: For ssl user uvicorn open_webui.main:app --host "%HOST%" --port "%PORT%" --forwarded-allow-ips '*' --ssl-keyfile "key.pem" --ssl-certfile "cert.pem" --ws auto