Categories
AI Development Linux

OpenWebUI

# 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:
![OpenWebUISettings](/wp-content/uploads/2025/04/OpenWebUISettings-300x70.jpg){.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.

Leave a Reply

Your email address will not be published. Required fields are marked *