mirror of
https://github.com/open-webui/open-webui.git
synced 2026-07-16 06:03:26 -05:00
[GH-ISSUE #16018] feat: Allow websocket to connect to external Redis over TLS #33284
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @erhhung on GitHub (Jul 25, 2025).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/16018
Check Existing Issues
Problem Description
I am attempting to install Open WebUI via Helm chart, and have provided the following chart values relevant to the websocket connection to an existing Valkey cluster:
Since the Valkey cluster requires connections over TLS (and optionally mTLS), and that TLS cert was issued by a private CA, I know I need to either disable server certificate verification or provide the CA cert to the Redis client.
But I couldn't find any environment variables related to such settings.
So, as expected, this is the output from the
open-webui-0container:Desired Solution you'd like
Either an interim workaround to disable TLS certificate verification on external Redis connections, or provide addtional environment variables to fully support mTLS connections.
Suggested environment variables:
REDIS_USE_TLS—TrueorFalse(default)REDIS_CA_CERTIFICATE— path to CA cert file, e.g./certs/ca.crtREDIS_CLIENT_CERTIFICATE— path to client cert file, e.g./certs/tls.crtREDIS_CLIENT_KEY— path to client key file, e.g./certs/tls.keyAlternatives Considered
No response
Additional Context
No response
@tjbck commented on GitHub (Jul 25, 2025):
PR Welcome!
@erhhung commented on GitHub (Jul 25, 2025):
Upon further investigation, it turns out that TLS connections are already supported through
redis-py's ability to accept connection options as query params directly in the Redis connection URL (see examples).So, using a
rediss://connection URL like the following works:The query param names are the same as the kwarg param names of the Redis client.
In my case, though, getting past this TLS issue isn't the only problem, as my Valkey cluster requires cluster support on the client-side by using
redis.cluster.RedisClusterandredis.asyncio.cluster.RedisCluster, which isn't implemented inutils/redis.pyat the moment.So I'll close this issue and file a separate one for cluster mode support...