From 37364585031f1cdc82edbec923882d0dd42e5074 Mon Sep 17 00:00:00 2001 From: Alvaro Ollero Date: Sat, 4 Oct 2025 22:21:06 +0200 Subject: [PATCH] Uvicorn exposes a configuration option to enable reverse proxying from a trusted ip. This PR exposes it downstreams to end clients --- whisperlivekit/basic_server.py | 2 ++ whisperlivekit/parse_args.py | 1 + whisperlivekit/web/live_transcription.js | 5 ++--- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/whisperlivekit/basic_server.py b/whisperlivekit/basic_server.py index 2ca52ff..c1b682e 100644 --- a/whisperlivekit/basic_server.py +++ b/whisperlivekit/basic_server.py @@ -118,6 +118,8 @@ def main(): if ssl_kwargs: uvicorn_kwargs = {**uvicorn_kwargs, **ssl_kwargs} + if args.forwarded_allow_ips: + uvicorn_kwargs = { **uvicorn_kwargs, "forwarded_allow_ips" : args.forwarded_allow_ips } uvicorn.run(**uvicorn_kwargs) diff --git a/whisperlivekit/parse_args.py b/whisperlivekit/parse_args.py index 7af1564..fe50023 100644 --- a/whisperlivekit/parse_args.py +++ b/whisperlivekit/parse_args.py @@ -175,6 +175,7 @@ def parse_args(): ) parser.add_argument("--ssl-certfile", type=str, help="Path to the SSL certificate file.", default=None) parser.add_argument("--ssl-keyfile", type=str, help="Path to the SSL private key file.", default=None) + parser.add_argument("--forwarded-allow-ips", type=str, help="Allowed ips for reverse proxying.", default=None) parser.add_argument( "--pcm-input", action="store_true", diff --git a/whisperlivekit/web/live_transcription.js b/whisperlivekit/web/live_transcription.js index 3a1e1da..2d61e41 100644 --- a/whisperlivekit/web/live_transcription.js +++ b/whisperlivekit/web/live_transcription.js @@ -178,14 +178,13 @@ function fmt1(x) { } let host, port, protocol; - +port = 8000; if (isExtension) { host = "localhost"; - port = 8000; protocol = "ws"; } else { host = window.location.hostname || "localhost"; - port = window.location.port || 8000; + port = window.location.port; protocol = window.location.protocol === "https:" ? "wss" : "ws"; } const defaultWebSocketUrl = `${protocol}://${host}${port ? ":" + port : ""}/asr`;