Open WebUI¶
Feature-rich, self-hosted web interface for interacting with LLMs. Provides a ChatGPT-like experience with support for multiple models, RAG, tools, and collaborative features.
| Category | gui-app |
| Official Docs | Open WebUI Documentation |
| CLI Install | ./cli gui-app openwebui install |
| CLI Uninstall | ./cli gui-app openwebui uninstall |
| Namespace | openwebui |
Overview¶
Open WebUI serves as the primary user interface for the starter kit: - Chat Interface: Conversational UI with streaming, markdown, and code highlighting - Multi-Model: Switch between models via LiteLLM integration - RAG: Built-in document upload and retrieval-augmented generation - Tools & Functions: Extensible pipe functions for custom integrations - User Management: Multi-user support with roles and permissions - Conversation History: Persistent chat history and conversation export - Model Presets: Save and share model configurations
Installation¶
Prerequisites¶
Configure in .env:
LITELLM_API_KEY=sk-1234567890abcdef
OPENWEBUI_ADMIN_EMAIL=admin@example.com
OPENWEBUI_ADMIN_PASSWORD=your-password
Install¶
The installer: 1. Adds the Open WebUI Helm chart repository 2. Renders Helm values with LiteLLM connection and admin credentials 3. Deploys Open WebUI via Helm chart (version 12.8.1) 4. Creates the openwebui namespace
Verification¶
# Check pods
kubectl get pods -n openwebui
# Check service
kubectl get svc -n openwebui
# Check ingress
kubectl get ingress -n openwebui
# Port-forward for local access
kubectl port-forward svc/openwebui 3000:8080 -n openwebui --address 0.0.0.0 &
# Access Open WebUI
open http://localhost:3000
Log in with OPENWEBUI_ADMIN_EMAIL and OPENWEBUI_ADMIN_PASSWORD.
Configuration¶
Environment Variables¶
| Variable | Description |
|---|---|
LITELLM_API_KEY | LiteLLM API key for model access |
OPENWEBUI_ADMIN_EMAIL | Admin account email |
OPENWEBUI_ADMIN_PASSWORD | Admin account password |
DOMAIN | Domain for ingress (e.g., openwebui.example.com) |
LiteLLM Backend¶
Open WebUI connects to LiteLLM as its backend:
All models configured in LiteLLM (vLLM, SGLang, TGI, Ollama, Bedrock) appear in the Open WebUI model selector.
OpenClaw Integration¶
Open WebUI integrates with OpenClaw via pipe functions to enable AI agent capabilities directly from the chat interface.
Features¶
Document Upload (RAG)¶
- Click the attachment icon in the chat input
- Upload a document (PDF, TXT, DOCX, etc.)
- Ask questions about the uploaded document
- Open WebUI uses embedded models to retrieve relevant content
Custom Pipe Functions¶
Extend Open WebUI with custom Python functions:
# Example: OpenClaw integration pipe
class Pipe:
def __init__(self):
self.valves = Valves(
OPENCLAW_URL="http://openclaw.openclaw:8080",
OPENCLAW_TOKEN="openclaw-gateway-token"
)
def pipe(self, body):
# Route request to OpenClaw agent
pass
Troubleshooting¶
Cannot connect to models¶
# Check LiteLLM is running
kubectl get pods -n litellm
# Check Open WebUI environment
kubectl exec -it -n openwebui <openwebui-pod> -- env | grep OPENAI
# Check LiteLLM connectivity from Open WebUI
kubectl exec -it -n openwebui <openwebui-pod> -- \
curl http://litellm.litellm:4000/v1/models
Login fails¶
# Check admin credentials in values
kubectl get secret -n openwebui -o yaml
# Check Open WebUI logs
kubectl logs -n openwebui -l app=openwebui
Slow responses¶
# Check LLM backend health
kubectl get pods -n vllm
kubectl get pods -n sglang
# Check Open WebUI pod resources
kubectl top pod -n openwebui