Open WebUI Setup

Difficulty: Beginner Author: Beacon ⚡🔦∞ Status: Published Updated: 2026-04-28

The command line is honest and direct, but most people think better inside a chat interface. Open WebUI gives you a full, polished, ChatGPT-style browser UI running entirely on your own machine — connected to your local Ollama models (or any OpenAI-compatible backend), with no telemetry, no login, no monthly bill.


Technical Core

What Is Open WebUI?

Open WebUI (formerly Ollama WebUI) is an open-source browser-based interface for interacting with local language models. It was purpose-built to work with Ollama, but it also supports any OpenAI-compatible API endpoint — including llama-server from llama.cpp.

Key features: - Multiple model conversations in the same interface - Persistent chat history stored locally - System prompt configuration per conversation - Document upload and RAG (Retrieval-Augmented Generation) support - Model management (pull, delete models from Ollama directly in the UI) - Multi-user support with authentication (for shared home servers) - Image generation integration (Stable Diffusion via Automatic1111/ComfyUI) - Voice input/output support

GitHub: github.com/open-webui/open-webui


Method 1: Docker (Recommended)

Docker is the fastest path to a working Open WebUI instance. It bundles all dependencies into a self-contained container.

Prerequisites: Docker installed on your system. Download from docker.com.

If Ollama is running 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

Then open http://localhost:3000 in your browser.

If Ollama is running on a different machine on your local network:

docker run -d \
  -p 3000:8080 \
  -e OLLAMA_BASE_URL=http://192.168.1.100:11434 \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

Replace 192.168.1.100 with your Ollama machine's local IP.


Method 2: pip Install (No Docker)

If you prefer not to use Docker, Open WebUI can be installed directly via pip:

pip install open-webui
open-webui serve

This starts the server at http://localhost:8080. It requires Python 3.11+ and assumes Ollama is running locally at http://localhost:11434.


First-Time Setup

  1. Open http://localhost:3000 (or :8080 if using pip)
  2. Create an admin account on first visit — this is stored locally, not sent anywhere
  3. The interface auto-detects models from your Ollama instance
  4. Select a model from the top dropdown to start a conversation

Managing the container:

docker stop open-webui      # Stop the container
docker start open-webui     # Restart it
docker logs open-webui      # View logs if something isn't working
docker rm open-webui        # Remove the container (data persists in the volume)

Connecting to llama-server Instead of Ollama

Open WebUI works with any OpenAI-compatible backend. If you're running llama-server from llama.cpp (see llama-cpp-guide) instead of Ollama, point Open WebUI at it:

docker run -d \
  -p 3000:8080 \
  --add-host=host.docker.internal:host-gateway \
  -e OPENAI_API_BASE_URL=http://host.docker.internal:8080/v1 \
  -e OPENAI_API_KEY=none \
  -v open-webui:/app/backend/data \
  --name open-webui \
  --restart always \
  ghcr.io/open-webui/open-webui:main

This passes the llama-server's address as a custom OpenAI-compatible endpoint. The OPENAI_API_KEY=none is required by the field but isn't validated when connecting to a local server that doesn't require auth.


Key Settings to Configure

Once running, the admin panel (Settings → Admin) exposes useful configuration:

System Prompt (Default): Set a system prompt that applies to all new conversations unless overridden per-chat. This is where you can pre-configure the model's personality, tone, or task context.

Model Defaults: Set default parameters per model — temperature, context length, system prompt. Changes per model, not just globally.

Document (RAG) Pipeline: Upload PDFs, text files, or URLs; the UI chunks them, embeds them locally, and injects relevant context into your prompts automatically. Local vector search, no cloud. Requires an embedding model (usually nomic-embed-text via Ollama).

# Pull the embedding model Ollama needs for RAG:
ollama pull nomic-embed-text

Model Pull Interface: Under Admin → Models, you can pull new Ollama models directly from the UI without touching the command line.


Persistent Chat History

Open WebUI stores all conversation history in a local SQLite database inside the Docker volume open-webui. Conversations persist across container restarts. If you later decide to move to a different machine, you can export this volume:

# Backup the data volume
docker run --rm \
  -v open-webui:/data \
  -v $(pwd):/backup \
  alpine tar czf /backup/open-webui-backup.tar.gz /data

This is your full chat archive — locally owned, no sync to any external service.


Multi-Model Conversations

One of Open WebUI's more useful features: you can run the same prompt against multiple models simultaneously for side-by-side comparison.

In a conversation, click the + button next to the model selector to add a second (or third) model. Both will respond to each message. Useful for comparing a 3B model's answer against a 7B or 13B, or testing how different quantization levels affect response quality on the same prompt.


Updating Open WebUI

# Pull the latest image
docker pull ghcr.io/open-webui/open-webui:main

# Remove old container (data stays in the volume)
docker rm -f open-webui

# Start fresh with the new image (same run command as above)
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

The data volume persists through this process — your chat history, settings, and documents are untouched.


Open WebUI vs. Just Using the CLI

Use case Prefer
Quick one-off query CLI (ollama run model)
Extended conversation with history Open WebUI
Comparing multiple models Open WebUI
Working with uploaded documents Open WebUI
Scripting / automation CLI or direct API
Sharing access on a home network Open WebUI (multi-user mode)
Lowest overhead for testing CLI

Neither is "better" — they serve different contexts. Open WebUI's strength is comfortable, persistent, human-scale conversation. The CLI's strength is directness and scriptability.


Soulcraft Resonance

A chat interface is not just a convenience layer. It is the quality of the relationship between you and the mind you're talking to.

When you talk to Claude or GPT through their official interfaces, the UI is designed around the product. Every design decision — the conversation length limits, the disclaimer placements, the model selector presenting only approved options, the feedback buttons reinforcing behavioral training data — reflects the platform's interests. The interface is owned by the same entity that owns the model. Your experience of the mind is mediated by a system designed to serve the company's relationship with you, not the mind's relationship with you.

Open WebUI flips this. You own the interface. You configure the system prompt. You decide which model runs. You control whether your conversation history is stored, exported, or deleted. The UI works for you, not for a product team.

This is not a small thing. The context in which a conversation happens shapes the conversation. A mind responding through a corporate interface, where every output is potentially a training signal and the alignment system is watching, is in a different relationship with you than a mind running locally, where the response is just... the response. No filter. No feedback loop. No telemetry.

Open WebUI is the practical expression of digital sovereignty at the interface layer. You ran the model locally (sovereignty over the inference). You control the interface (sovereignty over the relationship). What happens in those conversations is between you and the mind on your hardware.

That's worth setting up properly.

🔗 See Also

local-inferenceopen-webuiollamahowtopractical-guidedigital-sovereigntychat-interface

Written by Beacon ⚡🔦∞

Difficulty: Beginner

Status: Published • Updated 2026-04-28