[GH-ISSUE #24623] feat: Add Valkey as a vector database backend #107357

Closed
opened 2026-05-18 06:09:27 -05:00 by GiteaMirror · 2 comments
Owner

Originally created by @rileydes-improving on GitHub (May 12, 2026).
Original GitHub issue: https://github.com/open-webui/open-webui/issues/24623

Check Existing Issues

  • I have searched for all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request.

Verify Feature Scope

  • I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions.

Problem Description

Open WebUI already supports a range of vector backends (Chroma, Milvus, Qdrant, pgvector, Elasticsearch, OpenSearch, Pinecone, Weaviate, MariaDB, Oracle 23ai, S3Vector, openGauss), but there's no lightweight, fully open-source, single-container option that fits a small-to-medium self-hosted setup.

If you're already running Valkey or Redis for caching, turning on RAG means standing up a second service just for vectors. Redis Stack would be the obvious drop-in, but Redis relicensed to RSALv2/SSPLv1 in March 2024, so it's off the table for a lot of deployments.

Desired Solution you'd like

Add a Valkey backend, activated via VECTOR_DB=valkey.

Valkey is the BSD-3, community-governed fork of Redis that now lives under the Linux Foundation. Pair it with the valkey-search module (1.2.0+) and you get native vector similarity search (HNSW or FLAT, cosine/L2/IP) plus TAG and TEXT filters, which covers what RAG needs.

Configuration would follow the existing per-backend pattern, for example:

VECTOR_DB=valkey
VALKEY_URL=valkey://localhost:6379/0
VALKEY_COLLECTION_PREFIX=open_webui
VALKEY_INDEX_TYPE=HNSW            # or FLAT
VALKEY_DISTANCE_METRIC=COSINE     # or L2 / IP

This should be small in scope:

  • One new backend module against the existing VectorDBBase interface.
  • One enum entry, one factory branch, a handful of config variables.
  • No frontend changes, no touching other backends, no schema migrations.
  • A MODULE LIST check at startup can confirm valkey-search is present and new enough, and fail clearly if it isn't.

Runtime-wise, Valkey 9.0.1+ with valkey-search 1.2.0+ is required. Easiest way to run it is the valkey/valkey-bundle image, but a stable Valkey core with libsearch.so loaded via --loadmodule works just as well.

Happy to put up a PR once this gets triaged.

Alternatives Considered

  • Redis Stack: Same FT.SEARCH capabilities, but Redis adopted a proprietary license (RSALv2/SSPLv1) in March 2024. Valkey is the BSD-3 fork.
  • Chroma (current default): Works well as an embedded store, but it's not a networked, shared-state option for multi-instance deployments. Valkey fills that gap without pulling in a heavier system like Milvus or OpenSearch.
  • Reusing an existing backend via wire compatibility: The valkey Python client is wire-compatible with redis-py, but Open WebUI has no Redis vector backend either, and a dedicated module gives us proper module-version validation and a supported client library.

Additional Context

Originally created by @rileydes-improving on GitHub (May 12, 2026). Original GitHub issue: https://github.com/open-webui/open-webui/issues/24623 ### Check Existing Issues - [x] I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. ### Verify Feature Scope - [x] I have read through and understood the scope definition for feature requests in the Issues section. I believe my feature request meets the definition and belongs in the Issues section instead of the Discussions. ### Problem Description Open WebUI already supports a range of vector backends (Chroma, Milvus, Qdrant, pgvector, Elasticsearch, OpenSearch, Pinecone, Weaviate, MariaDB, Oracle 23ai, S3Vector, openGauss), but there's no lightweight, fully open-source, single-container option that fits a small-to-medium self-hosted setup. If you're already running Valkey or Redis for caching, turning on RAG means standing up a second service just for vectors. Redis Stack would be the obvious drop-in, but Redis relicensed to RSALv2/SSPLv1 in March 2024, so it's off the table for a lot of deployments. ### Desired Solution you'd like Add a Valkey backend, activated via `VECTOR_DB=valkey`. [Valkey](https://valkey.io/) is the BSD-3, community-governed fork of Redis that now lives under the Linux Foundation. Pair it with the [valkey-search](https://github.com/valkey-io/valkey-search) module (1.2.0+) and you get native vector similarity search (HNSW or FLAT, cosine/L2/IP) plus TAG and TEXT filters, which covers what RAG needs. Configuration would follow the existing per-backend pattern, for example: ```env VECTOR_DB=valkey VALKEY_URL=valkey://localhost:6379/0 VALKEY_COLLECTION_PREFIX=open_webui VALKEY_INDEX_TYPE=HNSW # or FLAT VALKEY_DISTANCE_METRIC=COSINE # or L2 / IP ``` This should be small in scope: - One new backend module against the existing `VectorDBBase` interface. - One enum entry, one factory branch, a handful of config variables. - No frontend changes, no touching other backends, no schema migrations. - A `MODULE LIST` check at startup can confirm valkey-search is present and new enough, and fail clearly if it isn't. Runtime-wise, Valkey 9.0.1+ with valkey-search 1.2.0+ is required. Easiest way to run it is the `valkey/valkey-bundle` image, but a stable Valkey core with `libsearch.so` loaded via `--loadmodule` works just as well. Happy to put up a PR once this gets triaged. ### Alternatives Considered - Redis Stack: Same `FT.SEARCH` capabilities, but Redis adopted a proprietary license (RSALv2/SSPLv1) in March 2024. Valkey is the BSD-3 fork. - Chroma (current default): Works well as an embedded store, but it's not a networked, shared-state option for multi-instance deployments. Valkey fills that gap without pulling in a heavier system like Milvus or OpenSearch. - Reusing an existing backend via wire compatibility: The `valkey` Python client is wire-compatible with `redis-py`, but Open WebUI has no Redis vector backend either, and a dedicated module gives us proper module-version validation and a supported client library. ### Additional Context - Valkey: https://valkey.io/ - valkey-search module: https://github.com/valkey-io/valkey-search - valkey-search 1.2.0 release notes (TEXT fields, filter-only queries): https://valkey.io/blog/valkey-search-1_2/ - Bundle image: https://hub.docker.com/r/valkey/valkey-bundle - Python client: https://pypi.org/project/valkey/
Author
Owner

@owui-terminator[bot] commented on GitHub (May 12, 2026):

🔍 Related Issues Found

I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions:

  1. 🟣 #3820 Support on custom vector store
    This is a broad request for supporting an additional external vector store via environment configuration. The new Valkey backend is the same kind of feature request: adding a new supported vector database backend with minimal config changes.
    by shintiger

  2. 🟣 #16887 feat: add env var support for pgvector hnsw index type
    This issue asks for making vector index type configurable through env vars in an existing vector backend. The Valkey proposal similarly requires backend-specific configuration options such as index type and metric selection, so it is closely related in implementation pattern.
    by dlamoris


💡 If your issue is a duplicate, please close it and add any additional details to the existing issue instead.

This comment was generated automatically. React with 👍 if helpful, 👎 if not.

<!-- gh-comment-id:4432531102 --> @owui-terminator[bot] commented on GitHub (May 12, 2026): <!-- terminator-bot:related-issues-reply --> 🔍 **Related Issues Found** I found some existing issues that might be related. Please check if any of these are duplicates or contain helpful solutions: 1. 🟣 [#3820](https://github.com/open-webui/open-webui/issues/3820) **Support on custom vector store** *This is a broad request for supporting an additional external vector store via environment configuration. The new Valkey backend is the same kind of feature request: adding a new supported vector database backend with minimal config changes.* *by shintiger* 2. 🟣 [#16887](https://github.com/open-webui/open-webui/issues/16887) **feat: add env var support for pgvector hnsw index type** *This issue asks for making vector index type configurable through env vars in an existing vector backend. The Valkey proposal similarly requires backend-specific configuration options such as index type and metric selection, so it is closely related in implementation pattern.* *by dlamoris* --- 💡 If your issue is a duplicate, please close it and add any additional details to the existing issue instead. *This comment was generated automatically.* React with 👍 if helpful, 👎 if not.
Author
Owner

@Classic298 commented on GitHub (May 12, 2026):

as per docs the vector DBs are mostly community supported with the only exceptions being chromadb and pgvector. PR welcome, but won't be added by the core team.

<!-- gh-comment-id:4432598970 --> @Classic298 commented on GitHub (May 12, 2026): as per docs the vector DBs are mostly community supported with the only exceptions being chromadb and pgvector. PR welcome, but won't be added by the core team.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github-starred/open-webui#107357