add REDIS_KEY_PREFIX env var and default to current hardcoded value

This commit is contained in:
Taylor Wilsdon 2025-06-28 10:11:26 -07:00
parent 7523613fbc
commit 345922a970
3 changed files with 9 additions and 3 deletions

View file

@ -19,6 +19,7 @@ from open_webui.env import (
DATABASE_URL, DATABASE_URL,
ENV, ENV,
REDIS_URL, REDIS_URL,
REDIS_KEY_PREFIX,
REDIS_SENTINEL_HOSTS, REDIS_SENTINEL_HOSTS,
REDIS_SENTINEL_PORT, REDIS_SENTINEL_PORT,
FRONTEND_BUILD_DIR, FRONTEND_BUILD_DIR,
@ -211,11 +212,13 @@ class PersistentConfig(Generic[T]):
class AppConfig: class AppConfig:
_state: dict[str, PersistentConfig] _state: dict[str, PersistentConfig]
_redis: Optional[redis.Redis] = None _redis: Optional[redis.Redis] = None
_redis_key_prefix: str
def __init__( def __init__(
self, redis_url: Optional[str] = None, redis_sentinels: Optional[list] = [] self, redis_url: Optional[str] = None, redis_sentinels: Optional[list] = [], redis_key_prefix: str = "open-webui"
): ):
super().__setattr__("_state", {}) super().__setattr__("_state", {})
super().__setattr__("_redis_key_prefix", redis_key_prefix)
if redis_url: if redis_url:
super().__setattr__( super().__setattr__(
"_redis", "_redis",
@ -230,7 +233,7 @@ class AppConfig:
self._state[key].save() self._state[key].save()
if self._redis: if self._redis:
redis_key = f"open-webui:config:{key}" redis_key = f"{self._redis_key_prefix}:config:{key}"
self._redis.set(redis_key, json.dumps(self._state[key].value)) self._redis.set(redis_key, json.dumps(self._state[key].value))
def __getattr__(self, key): def __getattr__(self, key):
@ -239,7 +242,7 @@ class AppConfig:
# If Redis is available, check for an updated value # If Redis is available, check for an updated value
if self._redis: if self._redis:
redis_key = f"open-webui:config:{key}" redis_key = f"{self._redis_key_prefix}:config:{key}"
redis_value = self._redis.get(redis_key) redis_value = self._redis.get(redis_key)
if redis_value is not None: if redis_value is not None:

View file

@ -324,6 +324,7 @@ ENABLE_REALTIME_CHAT_SAVE = (
#################################### ####################################
REDIS_URL = os.environ.get("REDIS_URL", "") REDIS_URL = os.environ.get("REDIS_URL", "")
REDIS_KEY_PREFIX = os.environ.get("REDIS_KEY_PREFIX", "open-webui")
REDIS_SENTINEL_HOSTS = os.environ.get("REDIS_SENTINEL_HOSTS", "") REDIS_SENTINEL_HOSTS = os.environ.get("REDIS_SENTINEL_HOSTS", "")
REDIS_SENTINEL_PORT = os.environ.get("REDIS_SENTINEL_PORT", "26379") REDIS_SENTINEL_PORT = os.environ.get("REDIS_SENTINEL_PORT", "26379")

View file

@ -398,6 +398,7 @@ from open_webui.env import (
AUDIT_LOG_LEVEL, AUDIT_LOG_LEVEL,
CHANGELOG, CHANGELOG,
REDIS_URL, REDIS_URL,
REDIS_KEY_PREFIX,
REDIS_SENTINEL_HOSTS, REDIS_SENTINEL_HOSTS,
REDIS_SENTINEL_PORT, REDIS_SENTINEL_PORT,
GLOBAL_LOG_LEVEL, GLOBAL_LOG_LEVEL,
@ -577,6 +578,7 @@ app.state.instance_id = None
app.state.config = AppConfig( app.state.config = AppConfig(
redis_url=REDIS_URL, redis_url=REDIS_URL,
redis_sentinels=get_sentinels_from_env(REDIS_SENTINEL_HOSTS, REDIS_SENTINEL_PORT), redis_sentinels=get_sentinels_from_env(REDIS_SENTINEL_HOSTS, REDIS_SENTINEL_PORT),
redis_key_prefix=REDIS_KEY_PREFIX,
) )
app.state.redis = None app.state.redis = None