ChatGPT sends every prompt to OpenAI's servers, where it may be reviewed for safety, used to improve future models, or accessed by OpenAI employees under certain conditions. If you work with sensitive data — legal documents, medical records, proprietary code, personal journals — that is a fundamental privacy problem that no privacy policy can fully resolve. Open WebUI combined with Ollama gives you a ChatGPT-quality interface running entirely on your own hardware. Your prompts never leave your machine.
Get more guides like this in your inbox
No spam. Unsubscribe anytime.
What You're Building
The stack has two components: Ollama, which runs the language model and exposes a local API, and Open WebUI, which provides the chat interface. Open WebUI is a full-featured web application — it supports multiple models, conversation history, document upload (RAG), image generation, voice input, user accounts, and a plugin system. It looks and feels like ChatGPT but runs entirely locally. The two components communicate over localhost; nothing is sent to any external server.
Prerequisites
You need Docker installed on your machine, and Ollama running with at least one model pulled. If you haven't installed Ollama yet, see the Ollama installation guide first. Docker Desktop is available for macOS, Windows, and Linux from docker.com. On Linux, install Docker Engine via the official apt/yum repository.
Step 1: Install Open WebUI
With Docker and Ollama running, install Open WebUI with a single Docker command. The --add-host flag is critical — it allows the Docker container to reach Ollama running on your host machine:
# Install and start Open WebUI
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
# Open WebUI is now available at http://localhost:3000
# First visit creates an admin accountStep 2: Connect to Ollama
Open WebUI auto-detects Ollama if it's running on the same machine. Navigate to http://localhost:3000, create your admin account, then go to Settings → Connections. The Ollama URL should already be set to http://host.docker.internal:11434. If not, set it manually. All models you've pulled with ollama pull will appear in the model selector immediately.
Step 3: Configure Your First Chat
Select a model from the dropdown at the top of the chat interface. For general use, Qwen3.5 9B is an excellent starting point — it handles conversation, writing, coding, and analysis well on any machine with 8+ GB of VRAM. For more capable responses on stronger hardware, Qwen3.5 27B or Llama 4 Scout are the recommended options in 2026. Open WebUI saves all conversation history locally in a SQLite database stored in the Docker volume.
Step 4: Enable Document Chat (RAG)
One of Open WebUI's most useful features is Retrieval-Augmented Generation (RAG) — the ability to upload documents and ask questions about them. Navigate to Workspace → Documents, upload a PDF, Word document, or text file, and it becomes searchable in your conversations. This is particularly valuable for legal documents, research papers, or internal company documentation that you would never want to send to an external API.
# In the chat interface:
# 1. Click the '+' button next to the message input
# 2. Select 'Upload Document'
# 3. Upload your PDF, DOCX, or TXT file
# 4. Reference it in your message with '#' followed by the filename
# Example: "Summarize the key points from #contract_2026.pdf"
# Or use the Documents workspace to build a persistent knowledge base
# that's available across all conversationsRunning on a Cloud GPU
If your local machine doesn't have enough VRAM for the models you want to run, you can host the Ollama backend on a RunPod Secure Cloud GPU pod and connect Open WebUI to it remotely. This gives you the privacy of self-hosting with the VRAM of a data center GPU. The setup: deploy an Ollama pod on RunPod, use SSH port forwarding to tunnel port 11434 to your local machine, then point Open WebUI at http://localhost:11434 as usual. Your chat interface runs locally; only the inference happens in the cloud.
Comparison: Open WebUI vs ChatGPT vs Claude
Open WebUI with a local model is not a direct replacement for frontier models on every task — a 32B local model is not as capable as GPT-5.4 or Claude Sonnet 4.6 for complex reasoning. But for the majority of everyday tasks — writing assistance, summarization, code review, Q&A on documents you've uploaded — a well-configured local setup is indistinguishable in quality. The privacy advantage is absolute: no prompt ever leaves your machine.
Keeping Open WebUI Updated
Open WebUI releases updates frequently (current version: v0.8.12). To update your Docker installation: note that the containrrr/watchtower image used in older guides is no longer maintained — use nicholas-fedor/watchtower instead if you want automated updates.
# Pull the latest image
docker pull ghcr.io/open-webui/open-webui:main
# Stop and remove the old container (data is preserved in the volume)
docker stop open-webui && docker rm open-webui
# Start the new container with the same command as before
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