Open WebUI
Self-hosted, extensible ChatGPT-style interface for LLMs — point it at Ollama or any OpenAI-compatible API.
About
Open WebUI is a self-hosted web UI for large language models: multi-model chat with mid-conversation switching, RAG over uploaded documents, tools/functions, pipelines, web search, code interpreter, and voice input/TTS, with multi-user support and role-based access. It connects to Ollama, OpenAI-compatible APIs, or vLLM — the models themselves stay wherever you run them.
Deployment is a single Docker image (ghcr.io/open-webui/open-webui) in variants including a 196MB :slim image, :cuda for Nvidia GPUs, and :ollama with Ollama bundled. Important: it uses a custom, non-OSI "Open WebUI License" — not open source in the OSI sense. Removing "Open WebUI" branding in deployments with more than 50 end users in any rolling 30-day window is a material license breach without written permission or an enterprise license.
What it can do
- • ChatGPT-style multi-model chat with conversation history, search, and mid-conversation model switching
- • RAG over uploaded documents (PDF/Office via external extractors on slim; built-in on :main)
- • Tools/functions and pipelines for extending behavior; web search provider integrations
- • Code interpreter (Pyodide in slim; bundled Python packages in :main), voice input via Whisper/STT, TTS replies
- • Multi-user accounts with admin panel and role-based access; single-user (no-login) mode option
- • OpenAI-compatible API surface so existing clients and agents can talk to it
Setup
- Install Docker. Generate a secret key:
openssl rand -hex 32. - Run the container (verified against both the official docs and repo README):
docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data -e WEBUI_SECRET_KEY=your-secret-key --name open-webui --restart always ghcr.io/open-webui/open-webui:main
- Open
http://localhost:3000and create the first account — it becomes the admin. Do this before exposing the instance to a network. - Connect a model backend: point it at Ollama on the host (
OLLAMA_BASE_URL=http://host.docker.internal:11434), or add OpenAI-compatible API keys in the admin panel. - For production, pin a version tag (e.g.
:vX.Y.Z) instead of the rolling:maintag — the docs recommend this explicitly. SetOFFLINE_MODE=trueon air-gapped instances to block Hugging Face traffic and the version check.
Prerequisites
Docker; an LLM backend (Ollama, OpenAI-compatible API, or the bundled :ollama image). ~1.6GB for :main, ~196MB for :slim (slim needs external services for embeddings/voice/RAG).
Use cases
Works with
Trust score — 9/10
Scored 9/10 (verified tier, metrics-v1). Evidence: 154,792 GitHub stars (log-scaled vs catalog peers); last push 0d ago; 42 releases/12mo; 188 open issues. Manual review: custom license with anti-rebranding clause; rolling :main tags; image-size figures provider-reported. License: custom non-OSI Open WebUI License (anti-rebranding clause >50 users).
★ 154,790 GitHub stars
How the trust score is built
Full methodology →- Adoption · stars/downloads, log-scaled vs peers
- 9.5/10
- Maintenance · recency, releases, issue load
- 10.0/10
- Openness · license + docs
- 5.8/10
- Manual review · sanity read + red-flag check
- 7.0/10
- · 154,792 GitHub stars (log-scaled vs catalog peers)
- · last push 0d ago; 42 releases/12mo; 188 open issues
- · manual review: custom license with anti-rebranding clause; rolling :main tags; image-size figures provider-reported
Sources
Every fact above was checked against these sources. Where a claim comes from the provider and couldn't be independently verified, the text says so.