Zum Hauptinhalt springen
warnung

Diese Anleitung ist ein Beitrag aus der Community und wird nicht vom Open WebUI-Team unterstützt. Sie dient lediglich als Demonstration, wie Sie Open WebUI für Ihren spezifischen Anwendungsfall anpassen können. Möchten Sie beitragen? Schauen Sie sich die Anleitung zum Beitragen an.

🔗 Redis Websocket-Unterstützung

Überblick

Diese Dokumentationsseite beschreibt die Schritte, die erforderlich sind, um Redis mit Open WebUI für Websocket-Unterstützung zu integrieren. Durch das Befolgen dieser Schritte können Sie die Websocket-Funktionalität in Ihrer Open WebUI-Instanz aktivieren und so eine Echtzeitkommunikation und -aktualisierung zwischen Clients und Ihrer Anwendung ermöglichen.

Voraussetzungen

  • Eine gültige Open WebUI-Instanz (ab Version 1.0 oder höher)
  • Ein Redis-Container (wir verwenden in diesem Beispiel docker.io/valkey/valkey:8.0.1-alpine, der auf der neuesten Redis 7.x-Version basiert)
  • Docker Compose (Version 2.0 oder höher) auf Ihrem System installiert
  • Ein Docker-Netzwerk zur Kommunikation zwischen Open WebUI und Redis
  • Grundkenntnisse in Docker, Redis und Open WebUI

Redis einrichten

Um Redis für die Websocket-Unterstützung einzurichten, müssen Sie eine docker-compose.yml-Datei mit folgendem Inhalt erstellen:

version: 3.9
services:
redis:
image: docker.io/valkey/valkey:8.0.1-alpine
container_name: redis-valkey
volumes:
- redis-data:/data
command: "valkey-server --save 30 1"
healthcheck:
test: "[ $$(valkey-cli ping) = PONG ]"
start_period: 5s
interval: 1s
timeout: 3s
retries: 5
restart: unless-stopped
cap_drop:
- ALL
cap_add:
- SETGID
- SETUID
- DAC_OVERRIDE
logging:
driver: "json-file"
options:
max-size: "1m"
max-file: "1"
networks:
- openwebui-network

volumes:
redis-data:

networks:
openwebui-network:
external: true
Hinweise

Die ports-Direktive ist in dieser Konfiguration nicht enthalten, da sie in den meisten Fällen nicht notwendig ist. Der Redis-Dienst ist dennoch innerhalb des Docker-Netzwerks vom Open WebUI-Dienst aus zugänglich. Wenn Sie jedoch auf die Redis-Instanz außerhalb des Docker-Netzwerks zugreifen müssen (z. B. zu Debugging- oder Überwachungszwecken), können Sie die ports-Direktive hinzufügen, um den Redis-Port freizugeben (z. B. 6379:6379).

Die obige Konfiguration richtet einen Redis-Container mit dem Namen redis-valkey ein und bindet ein Volume für die Datenpersistenz ein. Die healthcheck-Direktive stellt sicher, dass der Container neu gestartet wird, falls er nicht auf den ping-Befehl antwortet. Die --save 30 1-Option speichert die Redis-Datenbank alle 30 Minuten, wenn sich mindestens ein Schlüssel geändert hat.

Um ein Docker-Netzwerk zur Kommunikation zwischen Open WebUI und Redis zu erstellen, führen Sie den folgenden Befehl aus:

docker network create openwebui-network

Open WebUI konfigurieren

Um die Websocket-Unterstützung in Open WebUI zu aktivieren, müssen Sie die folgenden Umgebungsvariablen für Ihre Open WebUI-Instanz setzen:

ENABLE_WEBSOCKET_SUPPORT="true"
WEBSOCKET_MANAGER="redis"
WEBSOCKET_REDIS_URL="redis://redis:6379/1"

Diese Umgebungsvariablen aktivieren die Websocket-Unterstützung, legen Redis als Websocket-Manager fest und definieren die Redis-URL. Stellen Sie sicher, dass Sie den Wert von WEBSOCKET_REDIS_URL durch die tatsächliche IP-Adresse Ihrer Redis-Instanz ersetzen.

Wenn Sie Open WebUI mit Docker ausführen, müssen Sie es mit demselben Docker-Netzwerk verbinden:

docker run -d \
--name open-webui \
--network openwebui-network \
-v open-webui:/app/backend/data \
-e ENABLE_WEBSOCKET_SUPPORT="true" \
-e WEBSOCKET_MANAGER="redis" \
-e WEBSOCKET_REDIS_URL="redis://127.0.0.1:6379/1" \
ghcr.io/open-webui/open-webui:main

Ersetzen Sie 127.0.0.1 durch die tatsächliche IP-Adresse Ihres Redis-Containers im Docker-Netzwerk.

Überprüfung

Wenn Sie Redis ordnungsgemäß eingerichtet und Open WebUI konfiguriert haben, sollte beim Starten Ihrer Open WebUI-Instanz die folgende Protokollmeldung angezeigt werden:

DEBUG:open_webui.socket.main:Using Redis to manage websockets.

Dies bestätigt, dass Open WebUI Redis zur Websocket-Verwaltung verwendet. Sie können auch den docker exec-Befehl verwenden, um zu überprüfen, ob die Redis-Instanz läuft und Verbindungen akzeptiert:

docker exec -it redis-valkey redis-cli -p 6379 ping

Dieser Befehl sollte PONG ausgeben, wenn die Redis-Instanz korrekt läuft. Falls dieser Befehl fehlschlägt, können Sie stattdessen diesen Befehl ausprobieren:

docker exec -it redis-valkey valkey-cli -p 6379 ping

Fehlerbehebung

Wenn Sie Probleme mit Redis oder der Websocket-Unterstützung in Open WebUI haben, können Sie die folgenden Ressourcen zur Fehlerbehebung nutzen: