AI DevelopmentSelf-Hosted

Open WebUI: Your Self-Hosted ChatGPT in 5 Minutes

August 30, 2026
9 min read
Self-hosted Open WebUI chat interface running on a home server
Share:

Every team I work with asks the same question: how do we give everyone a ChatGPT-style interface without sending our data to a third party? The answer the open-source community converged on is Open WebUI — a self-hosted AI platform with more than 150,000 GitHub stars as of September 2026.

In this guide I show you exactly what Open WebUI is, how it works under the hood in 4 steps, and how to run it with Docker against Ollama or any OpenAI-compatible API.

1. What Open WebUI Is: Stars, License, Big Picture

Open WebUI (github.com/open-webui/open-webui) is a self-hosted, extensible, feature-rich AI chat platform created by Timothy Jaeryang Baek. It runs entirely offline, supports Ollama and any OpenAI-compatible API, and gives every user a polished multi-model chat UI with RAG, tools, and admin controls built in.

~151k stars

GitHub · Sep 2026

One of the most-starred AI repos on GitHub, with ~22k forks. I verified the count live on the repo page — it grows by thousands of stars every month.

📜

Open WebUI License

BSD-3 + branding clause

Free to self-host at any scale. Since v0.6.6 (April 2025) it adds a branding-protection clause: keep the Open WebUI branding once you pass 50 users, or get an enterprise license.

🧩

Provider-agnostic

Ollama + OpenAI-compatible

Point it at local Ollama models, or at LM Studio, vLLM, OpenRouter, Mistral, GroqCloud — or mix local and cloud providers in the same UI.

🔌

Extensible core

Plugins, RAG, agents

Tools, Functions, Pipes, local RAG over 9 vector databases, web search, image generation, voice calls, and multi-model conversations out of the box.

The license catch you should know

GitHub classifies the license as NOASSERTION (not OSI-approved). Running it is free at any scale, including SSO, LDAP, and RBAC. The only restriction: do not strip the Open WebUI branding on deployments with more than 50 users in a rolling 30-day window without written permission or an enterprise license. Code up to v0.6.5 remains plain BSD-3.

2. Architecture in 4 Steps

Open WebUI looks like a simple chat app, but it is really a thin orchestration layer between your users and any model backend. Here is the request path in four steps.

🖥️

Step 1 — Svelte frontend

Chat UI · PWA

The responsive SvelteKit UI handles chat, channels, notes, calendars, admin dashboards, and multi-model views. It talks to the backend over a documented REST + WebSocket API.

⚙️

Step 2 — FastAPI backend

Auth · RBAC · pipelines

The Python backend owns users, groups, permissions, chat history, knowledge bases, and the plugin/filter pipeline. Every message passes through Functions and Filters before reaching a model.

🧠

Step 3 — Model router

Ollama · OpenAI-compatible

The backend forwards the assembled prompt to Ollama locally (default http://host.docker.internal:11434) or to any OpenAI-compatible base URL you configure — LM Studio, vLLM, OpenRouter, or OpenAI itself.

💾

Step 4 — Data layer

SQLite/Postgres · S3 · vectors

Chats persist in SQLite (or Postgres), files go local/S3/GCS/Azure, and RAG embeddings land in one of 9 vector stores — ChromaDB, pgvector, Qdrant, Milvus, and more. Mount /app/backend/data or lose your DB on restart.

Why this design wins

Because inference and interface are decoupled, you can swap Llama for GPT, local for cloud, or Chroma for pgvector without retraining anyone. I treat Open WebUI as the frontend and Ollama as the engine — each upgrades independently.

3. Quickstart: Running It With Docker

The README-verified path is Docker with a mounted data volume. Pick the command that matches your setup — every snippet below comes straight from the official README, so flags like -p 3000:8080 and -v open-webui:/app/backend/data are exact.

Default: Ollama on the same machine

docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

With Nvidia GPU support

docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda

Bundled Ollama (single container, easiest)

docker run -d -p 3000:8080 --gpus=all -v ollama:/root/.ollama -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:ollama

OpenAI API only (no local models)

docker run -d -p 3000:8080 -e OPENAI_API_KEY=your_secret_key -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

Ollama on another server

docker run -d -p 3000:8080 -e OLLAMA_BASE_URL=https://example.com -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main

After install: open http://localhost:3000

Create the first admin account in the UI, then go to Admin Settings → Connections to point OLLAMA_BASE_URL at your Ollama host. Pull a model with ollama pull llama3.1 and it appears in the model picker. On Python 3.11 you can also pip install open-webui and run open-webui serve (serves on port 8080).

4. Use Cases That Justify It

I recommend Open WebUI whenever the interface must be owned even if the models are rented. These are the four deployments I see paying off fastest.

🏠

Private home lab

Ollama + :ollama image

One container on a home server with local models only. Fully offline-capable with HF_HUB_OFFLINE=1. Your chats never leave the house — ideal for journals, code drafts, and kids’ homework help.

🏢

Team AI gateway

RBAC + groups + SSO

One URL for the whole company: per-group model access, usage analytics, shared channels where humans and models collaborate. SSO and LDAP cost nothing extra — a real edge over rivals that gate them.

📚

RAG over internal docs

Knowledge bases + hybrid search

Load PDFs, wikis, and tickets into knowledge bases with hybrid BM25 + vector search and reranking. Support and onboarding bots grounded in your own docs, queryable with the # command right in chat.

🤖

Agent workbench

Tools · MCP · automations

Wrap models with custom instructions, tools, and scheduled automations. Connect external services via MCP/MCPO tool servers, approve tool calls with v0.11’s approval flow, and run multi-model arena evaluations.

5. When NOT to Use It

Open WebUI is the best default I know for a self-hosted chat UI — but it is not always the right call. Be honest about these four situations before you commit.

  • You need to white-label for 50+ users without paying: the branding clause forbids stripping Open WebUI marks at that scale. Budget an enterprise license or pick an MIT-licensed alternative.
  • You want a RAG framework, not a chat app: for programmatic pipelines, LangChain, LlamaIndex, or OpenRAG give you code-level control Open WebUI intentionally hides.
  • You expect multi-GPU inference serving: Open WebUI is a frontend — it does not serve weights. Pair it with vLLM, Ollama, or Ollama Cloud for serious throughput.
  • You need strict data-residency guarantees: self-hosting the UI changes nothing if you point it at a US cloud API. For air-gapped requirements, run local models only.

Golden rule

If your requirement is “ChatGPT experience, our infrastructure, our models, this week” — deploy Open WebUI. If your requirement is “custom AI product with our brand and our pipelines” — treat it as a prototype UI, then build on the backend APIs directly.

Conclusion

Open WebUI earned its 150k stars by solving the least glamorous problem in AI adoption: giving everyone a good interface on day one. I have deployed it for labs, teams, and RAG pilots, and the Docker path above gets you from zero to chatting in under ten minutes.

Start with the bundled :ollama image, keep the branding intact, and let the model router do the hard work. When you outgrow the UI, the backends and vector stores you chose will still be yours.

Cheat Sheet: Recap

Commands

  • • Default Docker (port 3000→8080)
  • • :cuda tag + --gpus all for Nvidia
  • • :ollama tag for bundled setup

Concepts

  • • Frontend → backend → router → data
  • • Open WebUI License + 50-user rule
  • • OLLAMA_BASE_URL for remote hosts

Next steps

  • • Pull a model: ollama pull llama3.1
  • • Add docs to a knowledge base
  • • Try Tools + automations

Sources

Diego Rodriguez

Diego Rodriguez

Senior Full-Stack & AI Engineer

Diego has 10+ years of experience building production-grade AI-powered applications, from LLM orchestration and RAG pipelines to ML-driven risk detection and algorithmic trading systems.

Learn more about Diego