I have been running local LLMs with Ollama for a while, but I was missing a proper web interface. Then I found Open WebUI by Timothy Jaeryang Baek – a feature-rich self-hosted AI platform with 50k+ GitHub stars. It connects to Ollama, OpenAI, OpenRouter, and any OpenAI-compatible API. Here is how I set it up with Docker.
GitHub: github.com/open-webui/open-webui
Official docs: docs.openwebui.com
Docker: ghcr.io/open-webui/open-webui

What Is Open WebUI?
Open WebUI is a full-featured web interface for running AI models. It works completely offline and supports multiple backends like Ollama, OpenAI API, OpenRouter, vLLM, and more. It also has built-in RAG, image generation, voice calls, and plugin support.
Some features I found useful:
- Connect to local Ollama models and remote APIs at the same time
- Built-in RAG with document upload and web search
- Multi-model conversations – compare responses side by side
- Voice/video calls with local Whisper STT
- Image generation with DALL-E, ComfyUI, or Stable Diffusion
- RBAC with user groups and permissions
- Plugin system with Filters, Tools, and Skills
- Persistent memory across conversations

Prerequisites
Before we start, make sure you have Docker installed:
# Check if Docker is installed
docker --version
# Should return something like
# Docker version 27.0.0, build abc123That is it. One dependency. The container bundles everything else.
Installation with Docker
The simplest way is a single docker run command. This pulls the image, starts the container, and mounts a volume for persistence:
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:mainOnce running, open http://your-server-ip:3000 in your browser. Create an admin account and you are in.
Option: Bundled with Ollama
If you do not have Ollama installed separately, use the :ollama tag. This image includes both Open WebUI and Ollama in one container:
# With GPU support
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:ollamaConnect to Ollama
If Ollama runs on the same machine, Open WebUI detects it automatically through host.docker.internal. If Ollama is on a different server, set the environment variable:
docker run -d -p 3000:8080 \
-e OLLAMA_BASE_URL=https://your-ollama-server:11434 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:mainConnect OpenAI or OpenRouter
Open WebUI is not limited to local models. You can connect any OpenAI-compatible API. For OpenRouter:
docker run -d -p 3000:8080 \
-e OPENAI_API_KEY=sk-or-v1-your-key \
-e OPENAI_BASE_URL=https://openrouter.ai/api/v1 \
-v open-webui:/app/backend/data \
--name open-webui \
--restart always \
ghcr.io/open-webui/open-webui:mainGo to Settings > Connections in the web UI to add multiple providers. You can mix local Ollama models with cloud APIs in the same session.
Docker Compose Setup
For a production setup, here is a docker-compose.yml that runs Open WebUI with Ollama as a separate service:
services:
ollama:
image: ollama/ollama:latest
container_name: ollama
restart: always
volumes:
- ollama:/root/.ollama
ports:
- "11434:11434"
open-webui:
image: ghcr.io/open-webui/open-webui:main
container_name: open-webui
restart: always
depends_on:
- ollama
ports:
- "3000:8080"
environment:
- OLLAMA_BASE_URL=http://ollama:11434
volumes:
- open-webui:/app/backend/data
volumes:
ollama:
open-webui:Run it with:
docker compose up -dPull Your First Model
If you used the bundled Ollama setup, SSH into your server and pull a model:
# Pull a small model to test
docker exec ollama ollama pull llama3.2:1b
# Or a larger one
docker exec ollama ollama pull deepseek-coder-v2Once the model is downloaded, refresh Open WebUI and it appears in the model selector dropdown. Click it, type a message, and you are chatting with a local LLM.
Why I Like It
- Single container – Docker pulls everything, no dependency hell
- Local and cloud models – mix Ollama with OpenRouter in the same UI
- RAG built-in – upload PDFs, docs, and ask questions against them
- Active development – 50k+ stars, constant updates
- Mobile-friendly – PWA works great on phone browsers
Open WebUI turned my server into a full AI workstation accessible from any browser. If you run Ollama or use any OpenAI-compatible API, this is the best web interface I have found so far.