Open WebUI (formerly Ollama WebUI) gives you a ChatGPT-style interface for your local LLMs. Combined with Ollama, it's the closest you can get to a self-hosted equivalent of ChatGPT or Claude.
The Stack
Ollama (model server) ← Open WebUI (frontend) ← Browser
↕
Local GPUs / CPU
Installation
The easiest way is with Docker:
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
If Ollama is on the same machine (port 11434), Open WebUI auto-discovers it. If Ollama is on another machine, set:
docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=http://your-server:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:main
First Login
Open http://localhost:3000. Create an admin account — this is local auth, no email needed. After signup, you'll see the chat interface with all your downloaded Ollama models available in the dropdown.
Key Features
Model switching. Change models mid-conversation from the dropdown. Good for starting with a fast model and switching to a smarter one for complex questions.
RAG (Retrieval-Augmented Generation). Upload documents (PDF, txt, md) and Open WebUI chunks them into a vector store. The model answers based on your documents. No separate vector DB needed — it uses ChromaDB under the hood.
Code syntax highlighting. Responses with code blocks get proper highlighting. Languages auto-detect.
Prompt templates. Save reusable prompts as templates. Works well for system prompts you use frequently.
Multi-user. Other people on your network can create accounts at http://your-ip:3000/auth. Each user has their own chat history.
Advanced Config
Custom model parameters. In Settings → Model, you can set default temperature, top_p, and context length per model.
Web search. Connect a SearXNG instance to give the models web search ability. Set the URL in Admin Settings → Web Search.
Multi-modal. If you have LLaVA or another vision model loaded in Ollama, Open WebUI lets you upload images and ask questions about them.
Running Without Docker
If you prefer no Docker:
git clone https://github.com/open-webui/open-webui.git
cd open-webui
cp .env.example .env
# Edit .env with your settings
pip install -r requirements.txt
./start.sh
Requires Python 3.11+ and node.js for the frontend build.
Tips
Keep Ollama running. Open WebUI connects to Ollama on startup. If Ollama isn't running, you'll see "no models available" in the dropdown.
Default port. Open WebUI uses 3001 without Docker, 8080 inside Docker (mapped to 3000). Adjust your tunnel/proxy accordingly.
Storage. Chats and documents live in the Docker volume. Back up open-webui:/app/backend/data if you care about chat history.
Memory. Open WebUI itself is lightweight (~200MB RAM). The model memory is what matters — that's Ollama's concern.