{"slug":"open-webui","name":"Open WebUI","kind":"runbook","what":"A self-hosted, ChatGPT-style interface for Ollama and any OpenAI-compatible endpoint.","page":"https://insidethemachine.ai/setups/open-webui","status":"docs-checked","status_label":"Not run: commands checked against the official docs only","status_note":"Commands checked against the official docs on 2026-10-15. Not run end to end.","wrapper":"The wrapper scripts are generated from the site data. Every .sh passed bash -n and shellcheck and ran in plan mode on Linux (Debian 13). Every .ps1 passed the PowerShell parser and chat.ps1 ran in plan, verify and rollback mode under PowerShell 7 on Linux with Windows calls mocked. Not run on macOS or real Windows.","wrapper_tested":null,"sh":"https://insidethemachine.ai/install/open-webui.sh","ps1":"https://insidethemachine.ai/install/open-webui.ps1","md":"https://insidethemachine.ai/install/open-webui.md","json":"https://insidethemachine.ai/install/open-webui.json","one_liner":"curl -fsSL https://insidethemachine.ai/install/open-webui.sh | bash","one_liner_windows":"irm https://insidethemachine.ai/install/open-webui.ps1 | iex","actions":{"install":"curl -fsSL https://insidethemachine.ai/install/open-webui.sh | bash","plan":"curl -fsSL https://insidethemachine.ai/install/open-webui.sh | bash -s -- plan","verify":"curl -fsSL https://insidethemachine.ai/install/open-webui.sh | bash -s -- verify","rollback":"curl -fsSL https://insidethemachine.ai/install/open-webui.sh | bash -s -- rollback --yes"},"env":{"ITM_RAM":"memory in GB instead of detecting it"},"model_by_memory_gb":null,"low_memory":null,"platforms":{"macos":{"install":[{"title":"Install Open WebUI","lines":[{"k":"mac","c":"brew install python@3.11"},{"k":"run","c":"python3.11 -m venv ~/.venvs/openwebui && source ~/.venvs/openwebui/bin/activate"},{"k":"run","c":"pip install open-webui"},{"k":"note","c":"Docker alternative (UI on port 3000):\ndocker 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"}]},{"title":"Configure (your choices)","lines":[{"k":"you","c":"open-webui serve","why":"pip install: UI at http://localhost:8080"},{"k":"note","c":"Ollama on the same machine is detected at its default address; for a remote Ollama set -e OLLAMA_BASE_URL=... on docker run"}]}],"verify":[{"run":"curl -sI http://localhost:8080 | head -1","expect":"HTTP 200 (pip) — use port 3000 for the Docker command"},{"run":"docker ps --filter name=open-webui","expect":"container listed as Up (Docker install)"}],"rollback":[{"k":"run","c":"pip uninstall -y open-webui && rm -rf ~/.venvs/openwebui"},{"k":"run","c":"docker rm -f open-webui && docker volume rm open-webui"}]},"linux":{"install":[{"title":"Install Open WebUI","lines":[{"k":"run","c":"python3.11 -m venv ~/.venvs/open-webui && source ~/.venvs/open-webui/bin/activate"},{"k":"run","c":"pip install open-webui   # inside a Python 3.11 venv"},{"k":"note","c":"or Docker: same docker run command as macOS"}]},{"title":"Configure (your choices)","lines":[{"k":"you","c":"open-webui serve","why":"pip install: UI at http://localhost:8080"},{"k":"note","c":"Ollama on the same machine is detected at its default address; for a remote Ollama set -e OLLAMA_BASE_URL=... on docker run"}]}],"verify":[{"run":"curl -sI http://localhost:8080 | head -1","expect":"HTTP 200 (pip) — use port 3000 for the Docker command"},{"run":"docker ps --filter name=open-webui","expect":"container listed as Up (Docker install)"}],"rollback":[{"k":"run","c":"pip uninstall -y open-webui && rm -rf ~/.venvs/openwebui"},{"k":"run","c":"docker rm -f open-webui && docker volume rm open-webui"}]},"windows":{"install":[{"title":"Install Open WebUI","lines":[{"k":"you","c":"pip install open-webui   # inside a Python 3.11 venv, or use Docker Desktop with the docker run command","why":"run inside a Python venv"}]}],"verify":[{"run":"curl -sI http://localhost:8080 | head -1","expect":"HTTP 200 (pip) — use port 3000 for the Docker command","you":true},{"run":"docker ps --filter name=open-webui","expect":"container listed as Up (Docker install)","you":true}],"rollback":[{"k":"you","c":"pip uninstall -y open-webui && rm -rf ~/.venvs/openwebui","why":"macOS/Linux command; do the same by hand"},{"k":"run","c":"docker rm -f open-webui && docker volume rm open-webui"}]}}}