From f822d89350dc67a1c5adc399bbe216caf953b314 Mon Sep 17 00:00:00 2001 From: DrMelone <27028174+Classic298@users.noreply.github.com> Date: Tue, 8 Apr 2025 18:38:00 +0200 Subject: [PATCH 1/5] Update env.py --- backend/open_webui/env.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index e3819fdc5..27ea3eda2 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -326,6 +326,19 @@ REDIS_URL = os.environ.get("REDIS_URL", "") REDIS_SENTINEL_HOSTS = os.environ.get("REDIS_SENTINEL_HOSTS", "") REDIS_SENTINEL_PORT = os.environ.get("REDIS_SENTINEL_PORT", "26379") +#################################### +# UVICORN WORKERS +#################################### + +UVICORN_WORKERS = os.environ.get("UVICORN_WORKERS", "1") +try: + UVICORN_WORKERS = int(UVICORN_WORKERS) + if UVICORN_WORKERS < 1: + UVICORN_WORKERS = 1 +except ValueError: + UVICORN_WORKERS = 1 + log.info(f"Invalid UVICORN_WORKERS value, defaulting to {UVICORN_WORKERS}") + #################################### # WEBUI_AUTH (Required for security) #################################### From 4c9a791b0640f5932d5c4219472a5580c403b046 Mon Sep 17 00:00:00 2001 From: DrMelone <27028174+Classic298@users.noreply.github.com> Date: Tue, 8 Apr 2025 18:47:48 +0200 Subject: [PATCH 2/5] Update env.py --- backend/open_webui/env.py | 1 + 1 file changed, 1 insertion(+) diff --git a/backend/open_webui/env.py b/backend/open_webui/env.py index 27ea3eda2..49aee4457 100644 --- a/backend/open_webui/env.py +++ b/backend/open_webui/env.py @@ -330,6 +330,7 @@ REDIS_SENTINEL_PORT = os.environ.get("REDIS_SENTINEL_PORT", "26379") # UVICORN WORKERS #################################### +# Number of uvicorn worker processes for handling requests UVICORN_WORKERS = os.environ.get("UVICORN_WORKERS", "1") try: UVICORN_WORKERS = int(UVICORN_WORKERS) From 2c1d0e385742d16f26b6e2eba23ec84826e51e1b Mon Sep 17 00:00:00 2001 From: DrMelone <27028174+Classic298@users.noreply.github.com> Date: Tue, 8 Apr 2025 18:50:07 +0200 Subject: [PATCH 3/5] Update start.sh --- backend/start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/backend/start.sh b/backend/start.sh index 671c22ff7..b9a30fd3d 100755 --- a/backend/start.sh +++ b/backend/start.sh @@ -65,4 +65,4 @@ if [ -n "$SPACE_ID" ]; then export WEBUI_URL=${SPACE_HOST} fi -WEBUI_SECRET_KEY="$WEBUI_SECRET_KEY" exec uvicorn open_webui.main:app --host "$HOST" --port "$PORT" --forwarded-allow-ips '*' +WEBUI_SECRET_KEY="$WEBUI_SECRET_KEY" exec uvicorn open_webui.main:app --host "$HOST" --port "$PORT" --forwarded-allow-ips '*' --workers "${UVICORN_WORKERS:-1}" From 65b5c6c0c72b4ad30f76b54deb34e98dc5a3cf40 Mon Sep 17 00:00:00 2001 From: DrMelone <27028174+Classic298@users.noreply.github.com> Date: Tue, 8 Apr 2025 18:52:12 +0200 Subject: [PATCH 4/5] Update start_windows.bat --- backend/start_windows.bat | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/backend/start_windows.bat b/backend/start_windows.bat index 19f6f123c..661ecc494 100644 --- a/backend/start_windows.bat +++ b/backend/start_windows.bat @@ -41,5 +41,6 @@ IF "%WEBUI_SECRET_KEY%%WEBUI_JWT_SECRET_KEY%" == " " ( :: Execute uvicorn SET "WEBUI_SECRET_KEY=%WEBUI_SECRET_KEY%" -uvicorn open_webui.main:app --host "%HOST%" --port "%PORT%" --forwarded-allow-ips '*' --ws auto +IF "%UVICORN_WORKERS%"=="" SET UVICORN_WORKERS=1 +uvicorn open_webui.main:app --host "%HOST%" --port "%PORT%" --forwarded-allow-ips '*' --workers %UVICORN_WORKERS% --ws auto :: 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 From f17befc853bee73d60354a1e62e78056dfed4a10 Mon Sep 17 00:00:00 2001 From: DrMelone <27028174+Classic298@users.noreply.github.com> Date: Tue, 8 Apr 2025 18:55:07 +0200 Subject: [PATCH 5/5] Update __init__.py --- backend/open_webui/__init__.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/__init__.py b/backend/open_webui/__init__.py index d85be48da..0c70cb63a 100644 --- a/backend/open_webui/__init__.py +++ b/backend/open_webui/__init__.py @@ -73,8 +73,15 @@ def serve( os.environ["LD_LIBRARY_PATH"] = ":".join(LD_LIBRARY_PATH) import open_webui.main # we need set environment variables before importing main + from open_webui.env import UVICORN_WORKERS # Import the workers setting - uvicorn.run(open_webui.main.app, host=host, port=port, forwarded_allow_ips="*") + uvicorn.run( + open_webui.main.app, + host=host, + port=port, + forwarded_allow_ips="*", + workers=UVICORN_WORKERS + ) @app.command()