Open WebUI im Homelab: ChatGPT-Oberfläche für Ollama

Im Beitrag Ollama auf Proxmox läuft am Ende ein Sprachmodell in deinem Homelab. Funktioniert, aber ehrlich: Auf Dauer will niemand per ollama run im Terminal chatten. Open WebUI setzt eine Oberfläche davor, die sich anfühlt wie ChatGPT: Chat-Verlauf, Modellauswahl, Dokumenten-Chat, Mehrbenutzer. Alles lokal, alles bei dir.

Was Open WebUI kann

  • Vertraute Oberfläche: Chats mit Verlauf, Ordnern und Suche, Markdown- und Code-Darstellung, Modellwechsel mitten im Gespräch.
  • Dokumenten-Chat (RAG): PDFs, Textdateien oder ganze Wissenssammlungen hochladen und Fragen dazu stellen.
  • Mehrbenutzer: Eigene Accounts für Familie oder Kollegen, mit Rollen und Freigabeprozess.
  • Erweiterbar: Websuche, eigene Assistenten mit System-Prompts, sogar Anbindung externer APIs, falls du doch mal ein Cloud-Modell danebenlegen willst.

Und das Beste: Es ist ein einziger Docker-Container.

Voraussetzungen

  • Eine laufende Ollama-Instanz, zum Beispiel aus dem Ollama-auf-Proxmox-Beitrag
  • Ollama muss im Netz erreichbar sein (OLLAMA_HOST=0.0.0.0, steht ebenfalls im Beitrag)
  • Ein Host mit Docker: eine VM, ein LXC mit Nesting oder ein NAS
  • 1–2 GB RAM und ein paar GB Disk für den Container, das Rechnen erledigt weiterhin Ollama

Falls du Ollama und Open WebUI zusammen neu aufsetzen willst: Nimm direkt das Docker-Compose-Setup aus dem Ollama-Beitrag (Weg 2), da ist die Oberfläche schon dabei. Dieser Beitrag hier nimmt den anderen Fall: Ollama läuft bereits (etwa im LXC), und die Oberfläche kommt jetzt dazu.

Installation: ein Container, fertig

docker run -d -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://<ollama-ip>:11434 \
  -v open-webui:/app/backend/data \
  --name open-webui --restart always \
  ghcr.io/open-webui/open-webui:main

<ollama-ip> ist die Adresse deiner Ollama-Instanz, bei mir der LXC aus dem letzten Beitrag. Wichtig: Trag hier eine IP-Adresse oder einen vollständigen Hostnamen (FQDN) ein. Kurznamen wie http://ollama:11434, die in deinem LAN per Search-Domain funktionieren, kann der Container oft nicht auflösen; im Praxistest scheiterte genau daran der erste Anlauf. Das Volume open-webui hält Accounts, Chats und Einstellungen über Updates hinweg.

Danach prüfen: http://<docker-host>:3000 im Browser öffnen. Es erscheint die Startseite von Open WebUI, bei deutschem Browser direkt auf Deutsch.

Erster Login: du bist der Admin

Beim ersten Aufruf legst du über Loslegen dein Konto an, der Button heißt dann treffend „Admin-Konto erstellen“: Der erste Account bekommt automatisch Administrator-Rechte. Die Zugangsdaten bleiben lokal in der Datenbank des Containers, da telefoniert nichts nach Hause. Alle weiteren Registrierungen landen erst einmal auf „ausstehend“ und müssen von dir freigeschaltet werden. Praktisch: Du kannst der Familie Zugänge geben, ohne dass jeder Gast im WLAN gleich mitchatten kann.

Nach dem Login findest du über dem Eingabefeld die Modellauswahl. Dort sollten die Modelle deiner Ollama-Instanz auftauchen, etwa llama3.2:3b oder qwen3:8b; das erste wird automatisch vorausgewählt. Wenn ja: Verbindung steht, viel Spaß.

Die Features, die den Unterschied machen

Dokumenten-Chat (RAG)

Der eigentliche Grund, warum sich Open WebUI lohnt: Du kannst Dokumente hochladen und mit ihnen arbeiten. Entweder wirfst du eine Datei direkt in den Chat, oder du legst unter Arbeitsbereich → Wissen eine Sammlung an (etwa „Homelab-Doku“) und referenzierst sie im Chat mit # oder @. Fragen wie „Welche VLAN-IDs habe ich laut Doku vergeben?“ beantwortet dir dann dein lokales Modell, ohne dass die Doku dein Netz verlässt. Genau das ist der Anwendungsfall, bei dem lokal seine Stärke ausspielt: Interne Configs und Netzpläne gehören nicht in einen Cloud-Chat.

Eigene Assistenten

Unter Arbeitsbereich → Modelle legst du eigene Presets an: Basismodell plus System-Prompt plus optional eine Wissenssammlung. Ein „Proxmox-Helfer“, der immer auf Deutsch und immer mit Shell-Beispielen antwortet, ist in zwei Minuten gebaut und taucht danach ganz normal in der Modellauswahl auf.

Websuche (optional)

Open WebUI kann Suchergebnisse in Antworten einbeziehen. Sinnvoll ist das mit einer selbstgehosteten SearXNG-Instanz: Dann bleibt auch die Suche in deiner Hand. Das ist ein eigenes kleines Projekt, für den Einstieg brauchst du es nicht.

Stolperfallen

  • Modellauswahl bleibt leer: Meist lauscht Ollama nur auf localhost. OLLAMA_HOST=0.0.0.0 setzen und den Dienst neu starten, die Details stehen im Ollama-Beitrag. Zweiter Kandidat: eine Firewall zwischen Docker-Host und Ollama. Dritter Kandidat: DNS im Container, siehe nächster Punkt.
  • Kurzname statt IP: Ein Hostname ohne Domain (etwa http://ollama:11434) funktioniert vom Desktop aus, weil dein Router die Search-Domain ergänzt. Der Open-WebUI-Container macht das nicht und läuft ins Leere. Im Zweifel die IP eintragen. Läuft Ollama nativ auf dem Docker-Host selbst, heißt die richtige Adresse http://host.docker.internal:11434 (unter Linux zusätzlich --add-host=host.docker.internal:host-gateway beim docker run mitgeben).
  • OLLAMA_BASE_URL ändern bringt nichts: Die Variable ist eine sogenannte PersistentConfig: Sie wird nur beim allerersten Start mit frischem Volume in die Datenbank übernommen. Danach gewinnt die Datenbank, und der Container ignoriert geänderte Umgebungsvariablen kommentarlos. Genau das passierte im Praxistest: Container mit korrigierter URL neu erstellt, Modellliste trotzdem leer, in der Datenbank stand noch die alte Adresse. Der Fix geht über die Oberfläche: Admin-Einstellungen → Verbindungen, dort die Ollama-URL bearbeiten, „Verbindung prüfen“, speichern. Die Modelle tauchen sofort auf, ohne Neustart.
  • Die Oberfläche macht nichts schneller: Open WebUI rendert nur, gerechnet wird weiterhin bei Ollama. Ein 8B-Modell, das auf CPU 4 Tokens pro Sekunde schafft, schafft die auch mit hübscher Oberfläche. Die Erwartung „mit UI fühlt es sich wie ChatGPT an“ stimmt optisch, nicht beim Tempo.
  • Updates: Das :main-Image entwickelt sich schnell weiter. Einmalig aktualisieren geht mit Watchtower: docker run --rm -v /var/run/docker.sock:/var/run/docker.sock nickfedor/watchtower --run-once open-webui. Dank Volume bleiben Chats und Accounts erhalten.
  • Nicht nackt ins Internet: Open WebUI hat zwar Logins, gehört aber trotzdem nicht ungeschützt ans Netz. Wenn Zugriff von unterwegs, dann per VPN (WireGuard, Tailscale) oder hinter einem Reverse Proxy mit HTTPS. Und die Ollama-API auf Port 11434 bleibt in jedem Fall intern, die hat nämlich gar keine Authentifizierung.

Fazit

Ein Container, zehn Minuten, und dein lokales LLM ist vom Terminal-Spielzeug zum brauchbaren Werkzeug für den Alltag geworden: mit Oberfläche, Dokumenten-Chat und Accounts für die ganze Familie. Getestet habe ich das Setup mit Open WebUI v0.11.0 gegen eine Ollama-Instanz (v0.32.6) auf Proxmox. Wenn Ollama bei dir noch nicht läuft, fang mit dem Beitrag Ollama auf Proxmox: Lokales LLM im Homelab betreiben an, danach bist du hier in wenigen Minuten durch.

Nach oben scrollen