Start / Cheat Sheets

Cheat Sheet

Open WebUI: Plattform aufbauen — Cheat Sheet

Stand: · Open WebUI im Unternehmen

Open WebUILLM-PlattformRAGSSO

Der Spickzettel zur ersten Hälfte des Seminars Open WebUI im Unternehmen: Daten einordnen, Architektur wählen, installieren, Identitäten, Modelle, Assistenten und Wissensbasen. Er bringt nichts davon bei, dafür sind die Module da. Integration, Erweiterungen, Absicherung, Tests, Monitoring, Hochverfügbarkeit und Rollout stehen auf dem zweiten Blatt: Open WebUI: Integration und Betrieb.

Maßgeblich für Variablen, Standardwerte und Versionsstände ist die Open-WebUI-Dokumentation. Dieses Blatt trifft eine Auswahl, Stand Open WebUI v0.11.4.

Open WebUI abgrenzen

LösungStärkeWann eher sie
SaaS-Assistentsofort nutzbar, kein BetriebDaten dürfen zum Anbieter, wenig Integration
Open WebUIeigene Daten, eigene Modelle, eigene Regelngemeinsame Arbeitsumgebung unter eigener Kontrolle
Eigene RAG-Anwendunggenau auf einen Prozess zugeschnittenein Fachprozess mit fester Oberfläche
Workflow-PlattformAbläufe ohne Mensch im DialogAutomatisierung im Hintergrund

Die Lösungen schließen sich nicht aus. Open WebUI betreibt die Modelle nicht selbst — Antwortqualität entsteht beim Modell, nicht in der Oberfläche.

Anwendungsfälle sortieren: hoher Nutzen bei Daten bis „intern“ und Fehlern, die beim Lesen auffallen → zuerst. Hoher Nutzen mit vertraulichen Daten → mit Auflagen (lokales Modell, enge Rechte). Hohes Risiko oder unkontrollierte Automatisierung → zurückstellen.

Modul: Open WebUI einordnen und Bedarf klären

Datenklassen und Datenflüsse

Ein Raster, wie es im Seminar festgelegt wird — die Grenzen setzt jedes Unternehmen selbst:

DatenklasseExternes ModellLokales Modell
öffentlicherlaubterlaubt
internerlaubterlaubt
vertraulichnicht erlaubterlaubt
streng vertraulichnicht erlaubtnicht erlaubt

Ein Dienst erbt die höchste Datenklasse, die ihn erreichen kann — nicht nur das Chatmodell:

DienstWas dort ankommtSteuerung
InferenzPrompt, Verlauf, Dokumentauszüge, WerkzeugergebnisseVerbindungen, Modellzugriff je Gruppe
EmbeddingDokumenttext und SuchanfragenRAG_EMBEDDING_ENGINE
Extraktion und OCRganze DateienCONTENT_EXTRACTION_ENGINE
WebsucheSuchbegriffe aus dem ChatBerechtigung Web Search
WerkzeugserverParameter jedes AufrufsWerkzeugzugriff je Gruppe
Protokolleab AUDIT_LOG_LEVEL=REQUEST auch InhalteMETADATA ohne Inhalte

Modul: Governance, Datenschutz und Lizenzen

Admin-Zugriff, Aufbewahrung und Export

ENABLE_ADMIN_CHAT_ACCESS=false     # fremde Chats nicht über die Oberfläche
ENABLE_ADMIN_EXPORT=false          # kein Massenexport (Standard true)
BYPASS_ADMIN_ACCESS_CONTROL=false  # Admins umgehen Ressourcenrechte nicht
AUDIT_LOG_LEVEL=METADATA           # Audit-Log ohne Inhalte
ENABLE_DIRECT_CONNECTIONS=false    # keine Modelle am Verfahren vorbei

Das wirkt nur in der Oberfläche. Wer Datenbank, Host oder Backups erreicht, bleibt Teil der Vertrauensgrenze; für echte Mandantentrennung empfiehlt die Doku getrennte Instanzen.

ThemaWas Open WebUI bietet
Temporäre ChatsUSER_PERMISSIONS_CHAT_TEMPORARY_ENFORCED erzwingt sie; das Modell verarbeitet trotzdem
LöschenDelete All Chats, gebunden an Allow Chat Delete — Backups regelt der Betreiber
Export durch NutzerSettings > Data Controls, als JSON
DateienEntfernen aus der Wissensbasis löscht Datei und Embeddings, außer mit ENABLE_KNOWLEDGE_FILE_RETENTION

Modul: Governance, Datenschutz und Lizenzen

DSGVO und KI-Verordnung

PflichtFundstelleGilt seit
Zweckbindung, Datenminimierung, SpeicherbegrenzungDSGVO Art. 5 Abs. 1 b, c, e—
InformationspflichtenDSGVO Art. 13—
Auftragsverarbeitung mit externem AnbieterDSGVO Art. 28—
DrittlandübermittlungDSGVO Art. 44 ff.—
Datenschutz-Folgenabschätzung prüfenDSGVO Art. 35—
Verbotene PraktikenKI-VO Art. 502.02.2025
KI-KompetenzKI-VO Art. 402.02.2025
TransparenzKI-VO Art. 5002.08.2026
Hochrisiko nach Anhang IIIKI-VO Art. 6 ff.02.12.2027

Stand nach VO (EU) 2026/1744: Art. 4 verlangt Maßnahmen, aber kein garantiertes Niveau je Person. Beim internen Einsatz ist das Unternehmen Betreiber. Das Blatt ersetzt keine Rechtsberatung.

Modul: Governance, Datenschutz und Lizenzen

Lizenz: wann das Branding geändert werden darf

AusnahmeBedingung laut Lizenz
Kleine Installationhöchstens 50 Nutzer in einem 30-Tage-Zeitraum
Substanzieller Beitragdauerhafte Mitarbeit und vorherige schriftliche Erlaubnis
Enterprise-LizenzVertrag erlaubt Brandingänderungen ausdrücklich
Forschungsstudiebefristete Studie einer Hochschule oder gemeinnützigen Einrichtung

WEBUI_NAME ist immer erlaubt — Open WebUI hängt dann „(Open WebUI)“ an. Die Lizenz deckt die Modelle nicht ab, auch nicht die eingebauten des Standardimages.

Modul: Governance, Datenschutz und Lizenzen

Architekturstufen und Zustandsdienste

GrößeArchitekturZustandsdienste
Evaluationein ContainerSQLite, eingebaute ChromaDB
Kleines Team unter 50, eine Instanzein Container hinter ProxyPostgreSQL, Redis, externe Extraktion empfohlen
Mehrere Worker oder InstanzenReplikate hinter Load BalancerPostgreSQL, Redis, externe Vektordatenbank Pflicht
Ab 1000 NutzernOrchestrierung, etwa Kubernetes mit Helmdazu externe Extraktion und Embeddings

Ab zwei Instanzen zusätzlich: gemeinsamer Dateispeicher (NFS oder S3) und überall derselbe WEBUI_SECRET_KEY. Die Konfiguration teilen sich Instanzen über PostgreSQL, nicht über Redis. Open WebUI migriert nicht zwischen SQLite und PostgreSQL; pgvector und ChromaDB pflegt das Projekt selbst, andere Vektordatenbanken die Community.

BausteinEngpassHinweis
Open WebUIRAM, CPUeingebaute SentenceTransformers ~500 MB je Worker
ExtraktionRAMpypdf verliert Speicher, Tika oder Docling isolieren das
ModellserverGPU-Speichergleichzeitige Generierungen bestimmen die GPU, nicht die Nutzerzahl
PostgreSQLVerbindungenDATABASE_POOL_SIZE mal Zahl der Instanzen
Thread-Poolwartende AnfragenStandard 40, zum Skalieren THREAD_POOL_SIZE

Modul: Zielarchitektur und Wirtschaftlichkeit

Image-Tags

TagInhalt
:mainStandardimage mit Sprach- und Embedding-Modellen, rollend
:slimohne ML-Stack — braucht externes Embedding und Extraktion
:cudaGPU für die eingebauten Modelle
:ollamaOllama im selben Container, nur für Tests
:vX.Y.Zgenau ein Release, unveränderlich
:X.Yneuester Patch einer Nebenversion, rollend
:devnächtliche Vorabversion, nur mit eigenem Volume

:latest folgt main, nicht dem neuesten Release. Reproduzierbar ist nur ein Versions-Tag, strenger mit @sha256-Digest. Daten liegen unter /app/backend/data — ohne Volume sind sie mit dem Container weg.

Modul: Installation und reproduzierbare Konfiguration

ConfigVar: welcher Wert gilt

ArtBeispieleNach dem Neustart gilt
ConfigVarENABLE_SIGNUP, WEBUI_URL, ENABLE_COMMUNITY_SHARING, die RAG-Variablender Datenbankwert
Normale VariableDATABASE_URL, ENABLE_ADMIN_CHAT_ACCESSdie Variable
ENABLE_PERSISTENT_CONFIG=Falsealle ConfigVar-Wertedie Variable, UI-Änderungen gehen verloren
OAuth-EinstellungenENABLE_OAUTH_PERSISTENT_CONFIG, Standard Falsedie Variable, im Admin-Bereich nur lesbar

Ob eine Variable ConfigVar ist, steht in der Referenz in der Zeile Persistence.

Modul: Installation und reproduzierbare Konfiguration

Sicherer Start und Reverse Proxy

WEBUI_SECRET_KEY=...       # fest, aus dem Tresor; neu = alle abgemeldet
WEBUI_ADMIN_EMAIL=...      # Admin beim ersten Start, danach Registrierung zu
WEBUI_ADMIN_PASSWORD=...
WEBUI_URL=https://...      # vor SSO setzen
DEFAULT_USER_ROLE=pending
EinstellungWarum
TLS am ProxyOpen WebUI terminiert TLS nicht selbst
Upgrade- und Connection-HeaderWebSockets
proxy_buffering offSSE-Streaming, sonst zerrissenes Markdown
Timeouts ab 300 Sekundenlange Antworten dauern Minuten
CORS_ALLOW_ORIGINStandard *, muss zur URL passen
WEBUI_SESSION_COOKIE_SECURE=trueStandard false
FORWARDED_ALLOW_IPSnur den Proxy eintragen, Standard *
OAUTH_SESSION_TOKEN_ENCRYPTION_KEYeigener Wert, sonst gleich dem Secret Key

Modul: Installation und reproduzierbare Konfiguration

Rollen, Gruppen und Berechtigungen

RolleBedeutung
adminvolle Kontrolle, umgeht die meisten Prüfungen; das erste Konto wird admin
userStandardberechtigungen plus Gruppenrechte
pendingkein Zugriff bis zur Freigabe

Gruppen dienen zwei Zwecken: Berechtigungsgruppen schalten Funktionen frei (Who can share to this group: No one), Freigabegruppen ordnen Menschen für Ressourcenfreigaben (Members). Die Default Permissions unter Admin Panel > Users > Groups nimmt keine Gruppe zurück — deshalb schmal halten:

BerechtigungEmpfehlungGrund
Models Access, Knowledge Accessnur PflegegruppeInhalte brauchen eine verantwortliche Person
Tools Accessausgleichbedeutend mit Root-Zugriff auf den Server
Web Searchauserst nach geklärter Datenfreigabe
API Keysausnur für technische Konten
Chats Open SharingausLinks ohne Anmeldung verlassen das Unternehmen

Modul: Identitäten und Berechtigungen

SSO, Gruppenabgleich und SCIM

WegKernvariablen
OIDCOAUTH_CLIENT_ID, OPENID_PROVIDER_URL (Pflicht)
MicrosoftMICROSOFT_CLIENT_ID, MICROSOFT_CLIENT_TENANT_ID; offline_access für Refresh
LDAPENABLE_LDAP, LDAP_SERVER_HOST, LDAP_SEARCH_BASE
Trusted HeaderWEBUI_AUTH_TRUSTED_EMAIL_HEADER

Nur ein OIDC-Anbieter zugleich, Redirect-URI endet auf /oauth/oidc/callback. MFA gibt es nur über den Identitätsanbieter.

ENABLE_OAUTH_GROUP_MANAGEMENT=true
ENABLE_OAUTH_GROUP_CREATION=false
OAUTH_GROUP_CLAIM=groups
ENABLE_OAUTH_ROLE_MANAGEMENT=true
OAUTH_ROLES_CLAIM=groups
OAUTH_ALLOWED_ROLES=<Nutzergruppe>   # sonst 403 bei der Anmeldung
OAUTH_ADMIN_ROLES=<Admingruppe>
EreignisNur OIDCMit SCIM 2.0
EintrittKonto bei erster AnmeldungIdP legt vorab an
Gruppenwechselerst nach Neuanmeldungsofort
Austrittausgestellte Tokens bleiben gültigactive: false setzt pending

SCIM: ENABLE_SCIM, SCIM_TOKEN, SCIM_AUTH_PROVIDER, Basis /api/v1/scim/v2/. JWT_EXPIRES_IN steht auf 4w; Widerruf von Tokens und ENABLE_OAUTH_BACKCHANNEL_LOGOUT funktionieren nur mit Redis.

Modul: Identitäten und Berechtigungen

Modellverbindungen und Parameterebenen

OLLAMA_BASE_URLS=http://<modellserver>:11434
OPENAI_API_BASE_URLS=https://<anbieter>/v1
OPENAI_API_KEYS=...
AIOHTTP_CLIENT_TIMEOUT=300
AIOHTTP_CLIENT_TIMEOUT_MODEL_LIST=5

OpenAI-kompatibel heißt mindestens /v1/chat/completions; /v1/models ist empfohlen, Tool Calling braucht tools und tool_choice.

EbeneWoWirkung
GlobalAdmin > Models > Model DefaultsGrundwerte
ModellAdvanced Params im Modelleditorschlägt global
ChatChat Controls mit Allow Chat Paramsschlägt das Modell
APIBody der Anfragebehält immer den eigenen Wert
ModellartVariable
ChatmodellDEFAULT_MODELS, DEFAULT_MODEL_PARAMS
Aufgabenmodell (Titel, Tags, Suchanfragen)TASK_MODEL, TASK_MODEL_EXTERNAL
EmbeddingRAG_EMBEDDING_MODEL, ab Werk all-MiniLM-L6-v2
RerankingRAG_RERANKING_MODEL, optional

Kontext: Ollama wählt OLLAMA_CONTEXT_LENGTH nach VRAM (4096 unter 24 GiB, 32768 bis 48 GiB). num_ctx in Open WebUI überschreibt den Server und füllt beim Einschalten 2048 vor. Als Mindestklasse für lokales Tool Calling im Native Mode nennt die Doku Qwen 3.6 27B.

Modul: Modelle anbinden und bereitstellen

Assistenten, Workspace und Freigaben

BausteinWofür
ModelsBasismodell mit Systemprompt, Wissen und Werkzeugen
KnowledgeDokumentsammlungen für die Suche
PromptsVorlagen mit Variablen, per / aufrufbar
SkillsArbeitsanweisungen in Markdown, bei Bedarf geladen
ToolsFähigkeiten, die ein Modell aufruft
RessourceVersionsstand
Assistentenkeine Historie — als JSON exportieren
PromptsVersion History, live erst mit Set as Production

Freigabe je Ressource: Private plus Gruppen mit Read oder Write. Write ist eigentümergleich: ändern, löschen, weiter freigeben. Hide blendet aus, Enabled aus nimmt das Modell für alle weg. Systemprompt-Variablen ohne Leerzeichen: {{CURRENT_DATE}}, nicht {{ CURRENT_DATE }}.

Modul: Arbeitsbereiche und Assistenten gestalten

RAG: Abrufmodus, Extraktion und Stellschrauben

WegPasst für
Focused Retrievalgroße Bestände, gezielte Fragen
Full Context (Using Entire Document)kurze Leitfäden, die immer gelten
Agentische SucheModelle mit verlässlichem Native Function Calling

CONTENT_EXTRACTION_ENGINE: leer (schwach bei Scans), tika, docling, mistral_ocr (externer Dienst), document_intelligence, external und weitere.

VariableStandardWirkung
CHUNK_SIZE / CHUNK_OVERLAP1000 / 100Abschnittslänge und Überlappung
ENABLE_MARKDOWN_HEADER_TEXT_SPLITTERTruetrennt zuerst an Überschriften
CHUNK_MIN_SIZE_TARGET0verschmilzt zu kleine Abschnitte
RAG_TOP_K3Treffer der Vektorsuche
ENABLE_RAG_HYBRID_SEARCHFalseBM25 plus Vektorsuche
RAG_HYBRID_BM25_WEIGHT0.51 = nur BM25
RAG_TOP_K_RERANKER3Treffer nach dem Reranking
RAG_RELEVANCE_THRESHOLD0.0Mindestwert für Treffer

Alle sind ConfigVar.

ÄnderungWissensbasenDateien direkt im Chat
Chunk-Größe oder ÜberlappungReindex empfohlenneu hochladen
Embedding-ModellReindex zwingendneu hochladen
Extraktions-EngineReindex hilft nicht, neu hochladenneu hochladen

Ein an Wissensbasen gebundenes Modell durchsucht nur diese. Die Standard-RAG-Vorlage erlaubt Antworten aus Modellwissen — für einen reinen Wissensassistenten im Systemprompt ausschließen, nicht global.

Modul: Unternehmenswissen mit RAG

Typische Fallen

  • Eigenbetrieb gleich Rechtskonformität. Zertifizierungen gelten der Installation, nicht der Software; die Verantwortung bleibt beim Unternehmen.
  • Nur das Chatmodell bewerten. Embedding, Extraktion und Websuche empfangen ebenfalls Daten.
  • Audit-Log auf REQUEST_RESPONSE. Kopiert Chatinhalte ins Logsystem.
  • Löschfristen ohne Backups. Dort bleiben gelöschte Chats erhalten.
  • Logo per CSS ausblenden. Ab 51 Nutzern im 30-Tage-Zeitraum ein Lizenzverstoß.
  • Produktiv mit SQLite starten. Kein eingebauter Umzug, und auf Netzwerkspeicher ein häufiger Ausfallgrund.
  • Eingebaute ChromaDB mit mehreren Workern. Nicht fork-sicher, Worker sterben beim Upload.
  • Rolling Updates bei Schemaänderungen. Alle Instanzen müssen gleichzeitig wechseln.
  • ConfigVar in der env-Datei ändern. Nach dem Erststart gilt der Datenbankwert — und das Volume zu löschen löscht auch Nutzer und Chats.
  • ENABLE_PERSISTENT_CONFIG=False und weiter in der Oberfläche konfigurieren. Beim Neustart ist alles weg.
  • Ohne festen WEBUI_SECRET_KEY. Der erzeugte Schlüssel geht verloren, verschiedene Werte je Instanz brechen Sitzungen und OAuth.
  • Ausgedachte Variablen wie OIDC_CONFIG. Sie wirken schlicht nicht.
  • Gruppen von Hand pflegen. Der Gruppenabgleich entfernt sie bei der nächsten Anmeldung. Liefert der Keycloak-Mapper volle Pfade wie /gruppe, passt keine Gruppe.
  • JWT_EXPIRES_IN=-1. Tokens gelten dann für immer.
  • localhost im Container. Meint den Container, nicht den Modellserver.
  • Tool Calls ohne index im Stream. Leere Antworten ohne Fehlermeldung.
  • Basis sperren statt ausblenden. Assistenten darauf scheitern mit „Model not found“.
  • Update All Models. Zieht neue Stände derselben Tags — auch ein Modellwechsel.
  • Memory am Modell abschalten. Gespeicherte Erinnerungen sind damit nicht gelöscht.
  • Gescannte PDFs ohne OCR-Engine. Indiziert, aber leer.
  • Alte Fassung neben der neuen. Widersprüche per Prompt zu glätten ersetzt nicht das Entfernen.
  • Nur positive Testfragen. Erst die Frage ohne Antwort im Bestand zeigt, ob ein Assistent erfindet.

Dieses Thema als Schulung für Ihr Team

Dieser Beitrag erklärt das Thema. Damit Ihr Team es danach auch anwendet, gibt es Open WebUI im Unternehmen als Schulung — an Ihrem eigenen Code, mit den Fragen, die ein Text nicht beantwortet. Sie wählen die Module, wir bauen daraus ein Programm.

6 Tage·ab 900 EUR netto pro Tag (bis 3 Teilnehmende) ·Termin nach Vereinbarung

Als Team-Schulung anfragenZum Seminar Open WebUI im Unternehmen →