This guide walks through a self-hosted installation of Open WebUI.
Current Stable Version: v0.8.9 (March 2026)
For Docker installation, see Docker.
Start the Open WebUI container and persist its data directory. For production, use a versioned tag instead of :main.
# Development/testing (uses latest main branch)
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:main
# Production (use specific version tag)
docker run -d -p 3000:8080 -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:v0.8.9
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:cuda
Or use the versioned CUDA image:
docker run -d -p 3000:8080 --gpus all -v open-webui:/app/backend/data --name open-webui ghcr.io/open-webui/open-webui:v0.8.9-cuda
| Image | Registry | Use Case |
|---|---|---|
ghcr.io/open-webui/open-webui:main |
GitHub Container Registry | Standard (development) |
ghcr.io/open-webui/open-webui:v0.8.9 |
GitHub Container Registry | Production (recommended) |
ghcr.io/open-webui/open-webui:cuda |
GitHub Container Registry | NVIDIA GPU support |
ghcr.io/open-webui/open-webui:ollama |
GitHub Container Registry | Bundled with Ollama |
openwebui/open-webui:main |
Docker Hub | Alternative registry |
Prefer automation? See Open WebUI Ansible Setup for an example playbook.
Prefer Compose? See Open WebUI Docker Setup for Docker Compose examples including GPU and multi-service configurations.
⚠️ Multi-Worker Warning: If using UVICORN_WORKERS > 1:
UVICORN_WORKERS=1 before updates for database migrations⚠️ Database Migration: Version 0.8.0+ includes long-running database migrations. Plan adequate downtime and back up your database before upgrading.
Any questions?
Feel free to contact us. Find all contact information on our contact page.