# Architektur von OpenWebUI
OpenWebUI ist eine selbstgehostete Benutzeroberfläche zur Interaktion mit LLMs (Large Language Models). Es kombiniert **Frontend und API-Layer** in einer einzigen Webanwendung und bietet Unterstützung für verschiedene Sprachmodelle – lokal oder über APIs (z. B. OpenAI, Claude, Ollama, LM Studio).
## Komponentenübersicht
Ein typisches OpenWebUI-System besteht aus folgenden Hauptkomponenten:
- **Benutzeroberfläche (Client)**
- Darstellung der Chats
- Eingabefeld für Nutzereingaben
- Darstellung von Modellantworten
- Chat-Historie und Session-Management
- **API-Layer (integriert in OpenWebUI)**
- Verarbeitung und Weiterleitung von Anfragen
- Token-Management (z. B. API-Keys)
- Sicherheit (z. B. Authentifizierung)
- Kontextverwaltung (z. B. System-Prompts, Rollen, Modelleinstellungen)
- **Sprachmodell(e)**
- Externe APIs: OpenAI (GPT-4), Anthropic (Claude), etc.
- Lokale Modelle über Ollama, LM Studio, OpenRouter u.a.
- Mehrere Modelle gleichzeitig konfigurierbar
## Architekturdiagramm
```mermaid
flowchart LR
subgraph OpenWebUI ["OpenWebUI (Self-Hosted Webapp)"]
A[Benutzeroberfläche
• Eingabe & Anzeige
• Session-Verwaltung]
B[API-Layer
• Anfrageverarbeitung
• Sicherheit & Token
• Modellrouting]
end
C[Sprachmodell
• GPT-4 / OpenAI API
• LLaMA / Ollama
• Claude / API]
A -->|Anfrage| B
B -->|Verarbeitete Anfrage| C
C -->|Antwort| B
B -->|Formatierte Antwort| A
```
## Besonderheiten
- **Self-Contained**: OpenWebUI enthält sowohl die Benutzeroberfläche als auch den API-Layer – keine zusätzliche Middleware nötig.
- **Multimodellfähig**: Nutzer können zwischen mehreren Modellen und Providern wählen.
- **Privatsphäre**: Lokale Modellanbindung (z. B. Ollama) möglich – keine Datenübertragung an Dritte.
- **Plugins & Funktionen**:
- Dateien hochladen und durchsuchen
- Konversationsverwaltung
- Rollenbasierte Prompts
- Unterstützung für Bildmodelle (optional)
## Hosting-Optionen
- Docker (empfohlen)
- Manuelle Installation (Node.js + Backend)
- Unterstützung für Authentifizierung, mehrere Benutzer und persistente Einstellungen
## Fazit
OpenWebUI ist eine leistungsstarke, modulare Lösung für den selbstgehostenen Einsatz von LLMs. Durch die Integration von Frontend und API eignet es sich besonders für Nutzer, die ohne Cloud-Dienste arbeiten wollen oder mehrere Modelle flexibel einbinden möchten.
# OpenWebUI mit Docker und Traefik installieren
Diese Anleitung beschreibt die Installation von [OpenWebUI](https://github.com/open-webui/open-webui) auf einem Webserver mithilfe von Docker und Traefik als Reverse Proxy.
## Voraussetzungen
- Ein Linux-Server mit root-Zugriff
- Installiertes Docker und Docker Compose
- Domain (z. B. `webui.example.com`)
- Docker-Netzwerk für Traefik, z. B. `traefik-net`
- Bereits laufender Traefik-Container
## 1. Verzeichnisstruktur anlegen
```bash
mkdir -p /data/docker/openwebui
cd /data/docker/openwebui
```
## 2. Docker-Compose-Datei erstellen
Erstelle eine Datei namens `docker-compose.yml` mit folgendem Inhalt:
```yaml
services:
openwebui:
image: ghcr.io/open-webui/open-webui:main
container_name: openwebui
restart: unless-stopped
networks:
- traefik-net
labels:
- "traefik.enable=true"
- "traefik.http.routers.openwebui.rule=Host(`webui.kaulbach.de`)"
- "traefik.http.routers.openwebui.entrypoints=websecure"
- "traefik.http.routers.openwebui.tls.certresolver=letsencrypt"
- openwebui_data:/app/backend/data
volumes:
openwebui_data:
networks:
traefik-net:
external: true
```
## 3. Container starten
```bash
docker compose up -d
```
## 4. Zugriff auf die Weboberfläche
Rufe OpenWebUI im Browser auf:
```
https://webui.kaulbach.de
```
## 5. Logs und Verwaltung
- Logs anzeigen: `docker logs -f openwebui`
- Stoppen: `docker compose down`
## 6. Updates
```bash
docker compose pull
docker compose up -d
```
## Weitere Infos
[https://github.com/open-webui/open-webui](https://github.com/open-webui/open-webui)
# Einrichten
## Admin
Beim ersten Login wird automatisch ein Admin-Benutzer angelegt.
## ChatGPT
Im Administrationsbereich über Einstellungen -> Verbindungen kann der OpenAI-API-Key eingetragen werden:
{.alignnone}
## Groq
Im Administrationsbereich über Einstellungen -> Verbindungen über das Plus-Zeichen eine neue Verbindung anlegen und die Groq-URL und API-Key eintragen:
URL: ```https://api.groq.com/openai/v1```
## Modelle
Im Administrationsbereich über Einstellungen -> Modelle kann ausgewählt werden, welche Modelle den Benutzern zur Auswahl angezeigt werden sollen.

















