What you are installing
Open WebUI is an open source, self-hosted chat interface. It is a web app you run on your own machine that puts one interface in front of your models, whether those are local Ollama models or any OpenAI-compatible API. Around the model it adds accounts, saved chats, document search and admin controls, and it keeps all of that in a database you host. Installing it means running that web app and pointing it at a model endpoint, and the model stays wherever it already runs. Docker is the officially supported path and the one the project recommends for most people (quick-start); pip suits a low-resource or manual setup. A self-hosted instance is a service on your network, so who can reach it and how it is secured is part of the job (is Open WebUI safe). If you are still choosing between chat interfaces, the alternatives round-up compares them.
Prerequisites and the steps, in order
Two things decide the install: the tools on your host and how the instance reaches a model.
- Docker. On the Docker path, install Docker first. Generate the secret key with
openssl rand -hex 32, then run the one-liner in the Docker panel. The command mounts theopen-webuivolume at/app/backend/data, and that volume is where chats, users and settings live. The project's own warning is to never run without it. - Python. On the pip path, use Python 3.11, then
pip install open-webuiandopen-webui serve. The server answers on port 8080. - The model endpoint. If the models run on the same machine, install Ollama and let the Docker command reach it through
host.docker.internal. Otherwise point the instance at the API URL of a hosted provider. - A GPU, only for local inference. The
:cudaimage runs models on an NVIDIA GPU and needs the CUDA support the project documents for Linux or WSL. Over a hosted API there is no GPU step.
Open the UI on its port, create the first admin account, and point the instance at the endpoint. From there it runs until you upgrade it.
What the install leaves for the team
The commands are the easy part. A running instance becomes somebody's job.
- Uptime: it has to be reachable when people want it, so someone watches it and restarts it.
- Storage: the
open-webuivolume holds every chat, account and setting, so it needs backups, and the default SQLite database eventually wants Postgres. - Access: accounts, groups and permissions decide who reaches which models, and a public instance is a login surface to defend.
- Upgrades:
:mainis a rolling tag, so an update means pulling a new image while keeping the volume. - Secrets:
WEBUI_SECRET_KEYhas to stay fixed. Lose it and every recreated instance logs everyone out. - The backend: it is a chat interface over a model, and the work still has to happen somewhere.
If the point of the instance is to reach a model, Kortix removes it: Kortix runs agents on their own cloud computers and lands the work as a change request you review. It is the leading open-source alternative to Claude Cowork and ChatGPT Work. Read Kortix vs Open WebUI for how the two differ, or migrate from Open WebUI if you are leaving a self-run instance. Self-hosting covers running the platform on your own hardware.