{"id":280484,"date":"2026-10-01T08:20:30","date_gmt":"2026-10-01T08:20:30","guid":{"rendered":"https:\/\/www.bluehost.com\/blog\/?p=280484"},"modified":"2026-10-01T08:20:34","modified_gmt":"2026-10-01T08:20:34","slug":"how-to-install-open-webui","status":"publish","type":"post","link":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/","title":{"rendered":"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">You can install Open WebUI with pip, Docker or Docker Compose, then connect it to Ollama running locally, inside a container or on a private remote server. Once it&#8217;s running, persistent storage keeps your chats, uploads and settings intact, and a VPS deployment lets you access it securely from more than just your own laptop.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open WebUI brings your AI models, conversations and documents into one shared workspace you control. It connects to Ollama and compatible model APIs, giving you a flexible interface for working with local or cloud models.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This guide walks you through pip, Docker and Docker Compose installs, shows you how to connect Ollama, and covers running Open WebUI on a Bluehost VPS for access beyond your own computer. You&#8217;ll also learn how to preserve your data and configure access. Self-hosting gives you more control, but privacy still depends on your setup, since external model providers and connected tools can still receive the content you share through them.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-what-do-you-need-before-installing-open-webui-nbsp\" class=\"wp-block-heading\">What do you need before installing Open WebUI&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Check the requirements for your chosen method:&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Operating system:<\/strong> A supported Linux, macOS or Windows environment. Use Linux containers with Docker Desktop on Windows and macOS.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Python for pip: <\/strong>Use a current Python 3.11 patch release with pip and venv. Open WebUI also documents Python 3.12 support, but recommends 3.11 for the most tested setup. Its current quick start does not support Python 3.13.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Docker for containers:<\/strong> Install a current <a href=\"https:\/\/docs.docker.com\/get-started\/get-docker\/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker Engine or Docker Desktop<\/a> release and confirm the daemon is running. Compose examples require Docker Compose v2, invoked as docker compose.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>A model source:<\/strong> Use a running Ollama server or an account and API key for a compatible hosted provider. The bundled Docker and Compose examples install the Ollama runtime, but you still need to download a model.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Resources:<\/strong> Allow space for application dependencies, uploads and model files. RAM and CPU needs depend on concurrent users, document processing, model size and context length. Open WebUI itself does not require a GPU.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Shell and permissions:<\/strong> The multiline Docker commands use Bash on Linux, macOS or Windows through WSL with Docker Desktop integration. They assume your account can run Docker. The secret-generation step also requires OpenSSL.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">See the <a href=\"https:\/\/docs.openwebui.com\/getting-started\/quick-start\/\" target=\"_blank\" rel=\"noreferrer noopener\">Open WebUI quick start<\/a> for compatibility changes. Python is not required on the host for the Docker methods.&nbsp;<\/p>\n\n\n\n<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" viewBox=\"0 0 2170 725\">\n  <image width=\"2170\" height=\"725\" xlink:href=\"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Always-On-AI-Hosting-Platform-1-1024x342.png\"><\/image> <a xlink:href=\"https:\/\/www.bluehost.com\/checkout\/hosting-configurator?packageName=vpsNvme4&amp;term=2y&amp;os=openwebui&amp;collectionId=5e6de364-710d-482f-9c17-433d73993ed2&amp;currencyCode=USD\">\n    <rect x=\"125\" y=\"510\" fill=\"#fff\" opacity=\"0\" width=\"511\" height=\"100\"><\/rect>\n  <\/a>\n<\/svg>\n\n\n\n<h2 id=\"h-how-do-you-install-open-webui-using-pip-nbsp\" class=\"wp-block-heading\">How do you install Open WebUI using pip&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A pip installation runs <a href=\"https:\/\/www.bluehost.com\/help\/article\/what-is-open-web-ui\">Open WebUI<\/a> directly in a Python environment. A virtual environment keeps its dependencies separate from other Python projects.\u00a0<\/p>\n\n\n\n<h3 id=\"h-step-1-create-a-virtual-environment-nbsp\" class=\"wp-block-heading\">Step 1 Create a virtual environment&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS or Linux, open a Bash terminal and run:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p open-webui-app&nbsp;<br>cd open-webui-app&nbsp;<br>python3.11 -m venv .venv&nbsp;<br>source .venv\/bin\/activate&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On Windows, use PowerShell instead:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir open-webui-app&nbsp;<br>cd open-webui-app&nbsp;<br>py -3.11 -m venv .venv&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The Windows steps below call the environment&#8217;s executables directly, so PowerShell script activation is unnecessary.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-2-install-open-webui-nbsp\" class=\"wp-block-heading\">Step 2 Install Open WebUI&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">In the activated macOS or Linux environment, run:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>python -m pip install --upgrade pip&nbsp;<br>python -m pip install open-webui&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">In Windows PowerShell, run:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>.\\.venv\\Scripts\\python.exe -m pip install --upgrade pip&nbsp;<br>.\\.venv\\Scripts\\python.exe -m pip install open-webui&nbsp;<\/code><\/pre>\n\n\n\n<h3 id=\"h-step-3-set-a-data-directory-and-start-the-server-nbsp\" class=\"wp-block-heading\">Step 3 Set a data directory and start the server&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Keep application data outside the virtual environment so replacing that environment does not remove your chats and uploads.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS or Linux:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export DATA_DIR=\"$HOME\/open-webui-data\"&nbsp;<br>open-webui serve --host 127.0.0.1 --port 8080&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On Windows PowerShell:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>$env:DATA_DIR = \"$env:USERPROFILE\\open-webui-data\"&nbsp;<br>.\\.venv\\Scripts\\open-webui.exe serve --host 127.0.0.1 --port 8080&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">These commands bind the web server to your own computer. Keep the terminal running. When restarting, use the same project directory and set the same DATA_DIR again. Open WebUI also creates a .webui_secret_key file in the startup directory; preserve it to keep the signing key consistent.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-4-create-your-account-and-connect-a-model-nbsp\" class=\"wp-block-heading\">Step 4 Create your account and connect a model&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Open http:\/\/localhost:8080 and create the first administrator account. If Ollama already runs on the same computer, use http:\/\/localhost:11434 as its connection URL. Otherwise, connect a model provider using the Ollama section or API FAQ below.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Installing Open WebUI alone does not install a chat model. Once a model is available, select it and send a short test message.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-how-do-you-install-open-webui-using-docker-nbsp\" class=\"wp-block-heading\">How do you install Open WebUI using Docker&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker packages the application and its dependencies in a container. The following examples keep the web interface on the host&#8217;s loopback address for initial setup. Use the VPS access instructions later in this guide when working on a remote server.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-1-prepare-a-persistent-secret-nbsp\" class=\"wp-block-heading\">Step 1 Prepare a persistent secret&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create a dedicated directory and generate a secret once:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p open-webui-docker&nbsp;<br>cd open-webui-docker&nbsp;<br>umask 077&nbsp;<br>if &#91; ! -f .env ]; then&nbsp;<br>printf 'WEBUI_SECRET_KEY=%s\\n' \"$(openssl rand -hex 32)\" &gt; .env&nbsp;<br>fi&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Keep .env private and reuse it when recreating the container. Do not commit it to a public repository. The key supports session signing and should not be replaced during routine updates.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-2-choose-one-container-option-nbsp\" class=\"wp-block-heading\">Step 2 Choose one container option&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The :main image runs Open WebUI with a separate model provider. The :ollama image also includes Ollama. These are alternative setups, so run only one of the commands below.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Option A: Open WebUI with Ollama already running on the host<\/strong>&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d \\&nbsp;<br>--name open-webui \\&nbsp;<br>-p 127.0.0.1:3000:8080 \\&nbsp;<br>--add-host=host.docker.internal:host-gateway \\&nbsp;<br>--env-file .env \\&nbsp;<br>-e OLLAMA_BASE_URL=http:\/\/host.docker.internal:11434 \\&nbsp;<br>-v open-webui:\/app\/backend\/data \\&nbsp;<br>--restart unless-stopped \\&nbsp;<br>ghcr.io\/open-webui\/open-webui:main&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The host gateway makes the host reachable by name. Ollama must also listen on an address the container can reach. Follow the host-binding instructions below if the connection fails. For a hosted API setup, omit the host-gateway and Ollama URL lines, then add the provider in Open WebUI.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Option B: Open WebUI with bundled Ollama<\/strong>&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker run -d \\&nbsp;<br>--name open-webui \\&nbsp;<br>-p 127.0.0.1:3000:8080 \\&nbsp;<br>--env-file .env \\&nbsp;<br>-e OLLAMA_NO_CLOUD=1 \\&nbsp;<br>-v ollama:\/root\/.ollama \\&nbsp;<br>-v open-webui:\/app\/backend\/data \\&nbsp;<br>--restart unless-stopped \\&nbsp;<br>ghcr.io\/open-webui\/open-webui:ollama&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This example uses CPU inference and disables Ollama cloud features. It does not disable external providers or tools configured separately in Open WebUI. For supported NVIDIA GPU hardware, install the required drivers and NVIDIA Container Toolkit, then add &#8211;gpus all to the command. A GPU flag cannot provide hardware your server does not have.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The open-webui volume holds application data. The separate ollama volume stores downloaded models in the bundled setup. Named volumes survive container replacement, but they still need backups.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-3-check-startup-and-download-a-model-nbsp\" class=\"wp-block-heading\">Step 3 Check startup and download a model&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Check the container and its recent logs:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker ps --filter name=open-webui&nbsp;<br>docker logs --tail 100 open-webui&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For the bundled option, wait for startup and download a small model for a basic chat test:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker exec -it open-webui ollama pull smollm2:360m&nbsp;<br>docker exec open-webui ollama ls&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The <a href=\"https:\/\/ollama.com\/library\/smollm2:360m\" target=\"_blank\" rel=\"noreferrer noopener\">SmolLM2 example<\/a> is a small test model. Choose a model suited to your workload before relying on advanced reasoning or tool use. For Option A, run ollama pull smollm2:360m on the host where Ollama is installed.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open http:\/\/localhost:3000, create the administrator account and select the downloaded model. Test a short conversation before adding documents or other integrations.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">For production, use a specific release tag from the <a href=\"https:\/\/github.com\/open-webui\/open-webui\/releases\" target=\"_blank\" rel=\"noreferrer noopener\">Open WebUI releases page<\/a>. The :main and :ollama examples track changing builds and are intended to make the initial setup easy to follow.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-how-do-you-deploy-open-webui-with-docker-compose-nbsp\" class=\"wp-block-heading\">How do you deploy Open WebUI with Docker Compose&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Compose manages Open WebUI and Ollama as separate services. This is useful when you want to maintain each container independently. You can also use <a href=\"https:\/\/www.bluehost.com\/vps-hosting\/portainer\">Portainer on a VPS<\/a> for visual container administration.\u00a0<\/p>\n\n\n\n<h3 id=\"h-step-1-create-the-project-and-secret-nbsp\" class=\"wp-block-heading\">Step 1 Create the project and secret&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For a fresh Compose installation, create a separate project directory:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>mkdir -p open-webui-compose&nbsp;<br>cd open-webui-compose&nbsp;<br>umask 077&nbsp;<br>if &#91; ! -f .env ]; then&nbsp;<br>printf 'WEBUI_SECRET_KEY=%s\\n' \"$(openssl rand -hex 32)\" &gt; .env&nbsp;<br>fi&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Use this as an alternative to the standalone Docker installation. Stop the earlier instance before reusing port 3000. Compose creates project-scoped volumes, so it does not automatically reuse data from a standalone Docker setup.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-2-save-the-compose-configuration-nbsp\" class=\"wp-block-heading\">Step 2 Save the Compose configuration&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Create compose.yaml in this directory with the following content:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>services:&nbsp;<br>ollama:&nbsp;<br>image: ollama\/ollama:latest&nbsp;<br>environment:&nbsp;<br>OLLAMA_HOST: \"0.0.0.0:11434\"&nbsp;<br>OLLAMA_NO_CLOUD: \"1\"&nbsp;<br>volumes:&nbsp;<br>- ollama:\/root\/.ollama&nbsp;<br>restart: unless-stopped&nbsp;<br>healthcheck:&nbsp;<br>test: &#91;\"CMD\", \"ollama\", \"ls\"]&nbsp;<br>interval: 10s&nbsp;<br>timeout: 5s&nbsp;<br>retries: 10&nbsp;<br>start_period: 10s&nbsp;<br>&nbsp;<br>open-webui:&nbsp;<br>image: ghcr.io\/open-webui\/open-webui:main&nbsp;<br>ports:&nbsp;<br>- \"127.0.0.1:3000:8080\"&nbsp;<br>env_file:&nbsp;<br>- .env&nbsp;<br>environment:&nbsp;<br>OLLAMA_BASE_URL: \"http:\/\/ollama:11434\"&nbsp;<br>volumes:&nbsp;<br>- open-webui:\/app\/backend\/data&nbsp;<br>restart: unless-stopped&nbsp;<br>depends_on:&nbsp;<br>ollama:&nbsp;<br>condition: service_healthy&nbsp;<br>&nbsp;<br>volumes:&nbsp;<br>ollama:&nbsp;<br>open-webui:&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Ollama has no published host port. Open WebUI reaches it through the Compose network at http:\/\/ollama:11434. The health check waits for Ollama&#8217;s API to respond before Open WebUI starts; it does not download a model or confirm inference readiness.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-3-start-the-services-and-pull-a-model-nbsp\" class=\"wp-block-heading\">Step 3 Start the services and pull a model&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">From the directory containing compose.yaml, run:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>docker compose config --quiet&nbsp;<br>docker compose up -d&nbsp;<br>docker compose ps&nbsp;<br>docker compose exec ollama ollama pull smollm2:360m&nbsp;<br>docker compose exec ollama ollama ls&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">If a service fails, inspect its recent logs with docker compose logs &#8211;tail 100. Then open http:\/\/localhost:3000, create your administrator account and test the model. Pin tested release tags for both services before using the stack in production.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-how-do-you-connect-open-webui-to-local-or-remote-ollama-nbsp\" class=\"wp-block-heading\">How do you connect Open WebUI to local or remote Ollama&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The Open WebUI backend sends requests to Ollama. The connection address must therefore work from the backend&#8217;s environment, which may differ from your browser&#8217;s environment.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-1-choose-the-correct-connection-address-nbsp\" class=\"wp-block-heading\">Step 1: Choose the correct connection address&nbsp;<\/h3>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><tbody><tr><td><strong>Where Open WebUI runs<\/strong>&nbsp;<\/td><td><strong>Where Ollama runs<\/strong>&nbsp;<\/td><td><strong>Ollama connection URL<\/strong>&nbsp;<\/td><\/tr><tr><td>pip on your computer&nbsp;<\/td><td>Same computer&nbsp;<\/td><td><a href=\"http:\/\/localhost:11434\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:11434<\/a>&nbsp;<\/td><\/tr><tr><td>Docker container&nbsp;<\/td><td>Docker host&nbsp;<\/td><td><a href=\"http:\/\/host.docker.internal:11434\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/host.docker.internal:11434<\/a>&nbsp;<\/td><\/tr><tr><td>Compose service&nbsp;<\/td><td>Ollama service in the example stack&nbsp;<\/td><td><a href=\"http:\/\/ollama:11434\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/ollama:11434<\/a>&nbsp;<\/td><\/tr><tr><td>Bundled Ollama image&nbsp;<\/td><td>Same container&nbsp;<\/td><td><a href=\"http:\/\/localhost:11434\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/localhost:11434<\/a>&nbsp;<\/td><\/tr><tr><td>Any installation&nbsp;<\/td><td>Reachable private remote server&nbsp;<\/td><td><a href=\"http:\/\/private_ip:11434\/\" target=\"_blank\" rel=\"noreferrer noopener\">http:\/\/PRIVATE_IP:11434<\/a>&nbsp;<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Replace PRIVATE_IP with the Ollama server&#8217;s actual private or VPN address. A VPS cannot reach a home-network address such as 192.168.1.50 unless you establish routing, a VPN or a tunnel between those networks.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Set OLLAMA_BASE_URL before the first launch. For example, before starting a pip installation in Bash:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>export OLLAMA_BASE_URL=\"http:\/\/localhost:11434\"&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">For an existing instance, open Settings &gt; Admin &gt; Connections, edit the Ollama connection and save it. Saved connection settings can take precedence over a changed environment variable. OLLAMA_BASE_URLS, when set, also takes precedence over the singular variable.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-2-adjust-the-ollama-listener-when-necessary-nbsp\" class=\"wp-block-heading\">Step 2: Adjust the Ollama listener when necessary&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">A native Ollama installation normally listens on 127.0.0.1:11434. That works for pip on the same machine, but a bridged Linux container or another computer needs a reachable listener.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before expanding the listener, restrict network access to the intended Open WebUI host or Docker network. Ollama&#8217;s local API has no built-in authentication. Keep it behind a private network, VPN or appropriately secured proxy.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On a Linux host where Ollama runs as a systemd service:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl edit ollama.service&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Add this override:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Service]&nbsp;<br>Environment=\"OLLAMA_HOST=0.0.0.0:11434\"&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Then reload and restart the service:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo systemctl daemon-reload&nbsp;<br>sudo systemctl restart ollama&nbsp;<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">This binds Ollama to all host interfaces, so the access restrictions must already be in place. For Docker-to-host access, allow the actual Docker bridge subnet rather than assuming a fixed subnet. A private-interface binding is another option when that interface is reachable from Open WebUI.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">On macOS, set the variable with launchctl setenv OLLAMA_HOST &#8220;0.0.0.0:11434&#8221;, then quit and reopen Ollama. On Windows, quit Ollama, set the OLLAMA_HOST user environment variable to 0.0.0.0:11434 and restart the app. Apply the same network restrictions. See <a href=\"https:\/\/docs.ollama.com\/faq\" target=\"_blank\" rel=\"noreferrer noopener\">Ollama&#8217;s environment setup instructions<\/a> for your operating system.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">The Compose example already configures a container listener and leaves its port unpublished. It does not need the host systemd override.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-step-3-verify-reachability-and-model-availability-nbsp\" class=\"wp-block-heading\">Step 3: Verify reachability and model availability&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For pip with Ollama on the same machine, check the model-list endpoint:&nbsp;<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl --fail http:\/\/localhost:11434\/api\/tags\u00a0<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">On Windows PowerShell, use curl.exe for the same command. For a container or remote setup, verify the connection in Open WebUI&#8217;s administrator settings and check the relevant container logs. A successful host-side request alone does not prove that a container can reach the server.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">An empty model list means the server responded but has no downloaded models. Pull a model into that Ollama instance, then refresh Open WebUI. You can also manage downloads under Settings &gt; Admin &gt; Connections &gt; Manage Ollama API Connections.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-when-should-you-move-open-webui-to-a-vps-nbsp\" class=\"wp-block-heading\">When should you move Open WebUI to a VPS&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">A local installation works well for personal use and testing. A VPS is useful when a team needs access independent of one person&#8217;s computer. Laptop sleep, shutdowns and home-network interruptions can make a local instance unavailable.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Open WebUI&#8217;s application requirements are separate from model inference requirements. A CPU VPS can host the interface while a compatible API or separate Ollama server handles inference. Small local models can run on CPUs, but larger models, longer contexts and concurrent requests need more resources.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If Ollama still runs on your laptop, moving only Open WebUI to a VPS will not keep those models available when the laptop is offline. For continuous access, the model backend must also remain reachable.&nbsp;<\/p>\n\n\n\n<h3 id=\"h-access-the-vps-securely-during-setup-nbsp\" class=\"wp-block-heading\">Access the VPS securely during setup&nbsp;<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The examples above bind the interface to loopback. On a VPS, localhost refers to that server, not your computer. From a terminal on your own computer, create an SSH tunnel:&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">ssh -N -L 3000:127.0.0.1:3000 USER@VPS_IP&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Replace USER and VPS_IP with your SSH account and server address. Leave the tunnel running and open http:\/\/localhost:3000 on your computer. For the pip example, use 8080:127.0.0.1:8080 and browse to port 8080 instead.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create the administrator account before inviting others. For ongoing team access, configure an HTTPS reverse proxy or a private access service. A proxy running on the host can forward to 127.0.0.1:3000; a containerized proxy needs appropriate container networking.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Follow <a href=\"https:\/\/docs.openwebui.com\/reference\/https\/\" target=\"_blank\" rel=\"noreferrer noopener\">Open WebUI&#8217;s HTTPS guidance<\/a> for the public URL, WebSocket support and streaming responses. Restrict signups and user permissions, and keep Ollama internal. On Linux, published Docker ports can bypass ordinary UFW rules, so do not rely on UFW alone to protect a publicly published container port.&nbsp;<\/p>\n\n\n\n<h2 id=\"h-why-choose-bluehost-for-open-webui-hosting-nbsp\" class=\"wp-block-heading\">Why choose Bluehost for Open WebUI hosting&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Bluehost&nbsp;Open WebUI provides a server environment for a persistent Open WebUI workspace. Full root access and Docker support let you control the application, model connections and access configuration.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Our NVMe 4 plan includes 2 vCPUs, 4 GB DDR5 RAM, and 100 GB NVMe storage, making it a practical starting point for evaluating Open WebUI with externally hosted inference. VPS performance and value can vary by provider and workload, as reflected in <a href=\"https:\/\/www.vpsbenchmarks.com\/best_vps\/may_2026\/value?utm_source=chatgpt.com\" target=\"_blank\" rel=\"noreferrer noopener\">VPSBenchmarks\u2019 May 2026 VPS value benchmarks<\/a>. Size the deployment around your users, document workload, and model requirements, and monitor actual resource use..&nbsp;<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Access beyond your laptop:<\/strong> Keep the workspace available without depending on your personal computer&#8217;s power state.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>NVMe storage:<\/strong> Store uploads, application data and knowledge-base files on fast storage. Overall RAG performance also depends on compute, models and configuration.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Persistent application data: <\/strong>Configure Docker volumes so chats, users and settings survive container replacement. Maintain separate backups.\u00a0<\/li>\n<\/ul>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Control as you grow:<\/strong> Manage providers, user access and optional integrations, then upgrade resources when the workload requires them.\u00a0<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Self-managed hosting means you handle operating-system updates, container maintenance, security configuration and backups. Hosting fees also do not include third-party model API usage. <a href=\"https:\/\/www.bluehost.com\/vps-hosting\">Compare current Bluehost VPS plans and pricing<\/a> before choosing a term.\u00a0<\/p>\n\n\n\n<h2 id=\"h-final-thoughts-nbsp\" class=\"wp-block-heading\">Final thoughts&nbsp;<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Docker packages the application into a single container, and Compose keeps Open WebUI and Ollama running as separate, independently maintained services.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Before sharing your workspace, verify the model connection, preserve its data and configure secure access. That last step matters more than it looks. A workspace that only lives on your own laptop is only as available as your laptop is. Close the lid, restart for an update or step away from your home network, and the workspace goes with it, along with anyone else who was counting on reaching it.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">That tradeoff is fine for a personal setup you&#8217;re testing on your own time. It becomes a real limitation the moment other people depend on the workspace, or the moment you need it running when you&#8217;re not at your desk. At that point, the question worth sitting with isn&#8217;t whether Open WebUI works locally, it clearly does, but whether your current setup can keep working without you.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">If the answer is no, <a href=\"https:\/\/www.bluehost.com\/vps-hosting\">Open WebUI hosting on a Bluehost VPS<\/a> gives that workspace a home that doesn&#8217;t depend on your laptop&#8217;s power state, your home network or you remembering to leave a terminal window open.\u00a0<\/p>\n\n\n\n<svg version=\"1.1\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" xmlns:xlink=\"http:\/\/www.w3.org\/1999\/xlink\" viewBox=\"0 0 2172 724\">\n  <image width=\"2172\" height=\"724\" xlink:href=\"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Connect-Control-Scale-Your-AI-1024x341.png\"><\/image> <a xlink:href=\"https:\/\/www.bluehost.com\/checkout\/hosting-configurator?packageName=vpsNvme4&amp;term=2y&amp;os=openwebui&amp;collectionId=5e6de364-710d-482f-9c17-433d73993ed2&amp;currencyCode=USD\">\n    <rect x=\"99\" y=\"545\" fill=\"#fff\" opacity=\"0\" width=\"390\" height=\"100\"><\/rect>\n  <\/a>\n<\/svg>\n\n\n\n<h2 id=\"h-faq-nbsp\" class=\"wp-block-heading\">FAQ&nbsp;<\/h2>\n\n\n\n<div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1790842208300\"><strong class=\"schema-faq-question\">How do I fix connection refused errors between Open WebUI and Ollama?\u00a0<\/strong> <p class=\"schema-faq-answer\">Connection errors occur when Ollama binds only to localhost (127.0.0.1), blocking Docker containers. Set OLLAMA_HOST=0.0.0.0 on your Ollama host and restart Ollama. When running Open WebUI in Docker, set OLLAMA_BASE_URL=http:\/\/host.docker.internal:11434.\u00a0<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790842238395\"><strong class=\"schema-faq-question\">Can I run Open WebUI without a dedicated GPU?<\/strong> <p class=\"schema-faq-answer\">Yes. Open WebUI itself does not need a GPU, though its built-in document embedding uses CPU and RAM. Model inference depends on Ollama, which can run models on system CPU and RAM if no GPU is available, though generation speed is slower.\u00a0<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790842252293\"><strong class=\"schema-faq-question\">What ports need to be open for Open WebUI and Ollama?<\/strong> <p class=\"schema-faq-answer\">Open WebUI listens on port 8080 by default (commonly mapped to host port 3000 in Docker). Ollama listens on port 11434. Keep port 11434 internal. Don\u2019t publish it with Docker, which bypasses ufw. On public servers, allow it only from your Open WebUI host.\u00a0<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790842266371\"><strong class=\"schema-faq-question\">How do I update Open WebUI to the latest version in Docker or pip?\u00a0<\/strong> <p class=\"schema-faq-answer\">For Docker, pull the latest image with docker pull ghcr.io\/open-webui\/open-webui:main. Remove the old container with docker rm -f open-webui and rerun your docker run command with the same volume and WEBUI_SECRET_KEY. For Compose, run docker compose pull then docker compose up -d. For pip, execute pip install &#8211;upgrade open-webui.\u00a0<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1790842278860\"><strong class=\"schema-faq-question\">How do I connect Open WebUI to OpenAI-compatible APIs or third-party LLMs?\u00a0<\/strong> <p class=\"schema-faq-answer\">Go to <strong>Settings > Admin > Connections<\/strong> in Open WebUI. Click <strong>+<\/strong> next to <strong>Manage OpenAI API Connections<\/strong>. Enter the base URL of OpenAI or a compatible server (such as vLLM, LM Studio or LiteLLM) plus your API key, then save.<\/p> <\/div> <\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><\/p>\n","protected":false},"excerpt":{"rendered":"<p>You can install Open WebUI with pip, Docker or Docker Compose, then connect it to Ollama running locally, inside a container or on a private remote server. Once it&#8217;s running, persistent storage keeps your chats, uploads and settings intact, and a VPS deployment lets you access it securely from more than just your own laptop.&nbsp; [&hellip;]<\/p>\n","protected":false},"author":138,"featured_media":280493,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"inline_featured_image":false,"footnotes":""},"categories":[3782],"tags":[3330],"ppma_author":[842],"class_list":["post-280484","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-open-webui","tag-how-to-guides"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.7 (Yoast SEO v27.7) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>How to Install Open WebUI: pip, Docker &amp; Ollama<\/title>\n<meta name=\"description\" content=\"Learn how to install Open WebUI using pip, Docker or Docker Compose and connect it to a local or remote Ollama server.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/280484\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0\" \/>\n<meta property=\"og:description\" content=\"Learn how to install Open WebUI using pip, Docker or Docker Compose and connect it to a local or remote Ollama server.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/\" \/>\n<meta property=\"og:site_name\" content=\"Bluehost Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/bluehost\/\" \/>\n<meta property=\"article:published_time\" content=\"2026-10-01T08:20:30+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-10-01T08:20:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Open-WebUI-Cloud-Installation-Flow.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1731\" \/>\n\t<meta property=\"og:image:height\" content=\"909\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Mohit Sharma\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@bluehost\" \/>\n<meta name=\"twitter:site\" content=\"@bluehost\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Mohit Sharma\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"12 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/\"},\"author\":{\"name\":\"Mohit Sharma\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/person\\\/963ada146537ec6b6cc4d4f02e6c40c8\"},\"headline\":\"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0\",\"datePublished\":\"2026-10-01T08:20:30+00:00\",\"dateModified\":\"2026-10-01T08:20:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/\"},\"wordCount\":2786,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Open-WebUI-Cloud-Installation-Flow.png\",\"keywords\":[\"How-To Guides\"],\"articleSection\":[\"Open WebUI\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#respond\"]}]},{\"@type\":[\"WebPage\",\"FAQPage\"],\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/\",\"name\":\"How to Install Open WebUI: pip, Docker & Ollama\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Open-WebUI-Cloud-Installation-Flow.png\",\"datePublished\":\"2026-10-01T08:20:30+00:00\",\"dateModified\":\"2026-10-01T08:20:34+00:00\",\"description\":\"Learn how to install Open WebUI using pip, Docker or Docker Compose and connect it to a local or remote Ollama server.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#breadcrumb\"},\"mainEntity\":[{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842208300\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842238395\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842252293\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842266371\"},{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842278860\"}],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Open-WebUI-Cloud-Installation-Flow.png\",\"contentUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/10\\\/Open-WebUI-Cloud-Installation-Flow.png\",\"width\":1731,\"height\":909},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Blog\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Hosting\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/category\\\/hosting\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"VPS hosting\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/category\\\/hosting\\\/vps-hosting\\\/\"},{\"@type\":\"ListItem\",\"position\":4,\"name\":\"Open WebUI\",\"item\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/category\\\/hosting\\\/vps-hosting\\\/open-webui\\\/\"},{\"@type\":\"ListItem\",\"position\":5,\"name\":\"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/\",\"name\":\"Bluehost\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#organization\",\"name\":\"Bluehost\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/bluehost-logo.svg\",\"contentUrl\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/08\\\/bluehost-logo.svg\",\"width\":136,\"height\":24,\"caption\":\"Bluehost\"},\"image\":{\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bluehost\\\/\",\"https:\\\/\\\/x.com\\\/bluehost\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bluehost-com\\\/\",\"https:\\\/\\\/www.youtube.com\\\/user\\\/bluehost\",\"https:\\\/\\\/en.wikipedia.org\\\/wiki\\\/Bluehost\"],\"description\":\"Bluehost is an all-in-one platform that empowers small businesses, developers, and agencies to build, grow, and run online with confidence through high-performance hosting, AI-powered tools, and real human support.\",\"telephone\":\"+1-888-401-4678\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/#\\\/schema\\\/person\\\/963ada146537ec6b6cc4d4f02e6c40c8\",\"name\":\"Mohit Sharma\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g2db1a2f67f45c93b46c4cb340a8d96bc\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g\",\"caption\":\"Mohit Sharma\"},\"description\":\"I\u2019m a Content Specialist at Bluehost with 3+ years of experience creating technical, business and SEO-focused content. I specialize in VPS, dedicated hosting, agency solutions and AI. I enjoy breaking down complex topics into clear, practical insights that help businesses, agencies and developers make informed decisions and grow online.\",\"sameAs\":[\"https:\\\/\\\/www.linkedin.com\\\/in\\\/mohitsharma066\\\/\"],\"honorificPrefix\":\"Mr\",\"birthDate\":\"1996-10-06\",\"gender\":\"male\",\"knowsAbout\":[\"HTML\",\"WordPress\",\"Writing\"],\"knowsLanguage\":[\"English\",\"Hindi\"],\"jobTitle\":\"Web Content Writer\",\"worksFor\":\"Newfold Digital\",\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/author\\\/mohit-sharma\\\/\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842208300\",\"position\":1,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842208300\",\"name\":\"How do I fix connection refused errors between Open WebUI and Ollama?\u00a0\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Connection errors occur when Ollama binds only to localhost (127.0.0.1), blocking Docker containers. Set OLLAMA_HOST=0.0.0.0 on your Ollama host and restart Ollama. When running Open WebUI in Docker, set OLLAMA_BASE_URL=http:\\\/\\\/host.docker.internal:11434.\u00a0\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842238395\",\"position\":2,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842238395\",\"name\":\"Can I run Open WebUI without a dedicated GPU?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Yes. Open WebUI itself does not need a GPU, though its built-in document embedding uses CPU and RAM. Model inference depends on Ollama, which can run models on system CPU and RAM if no GPU is available, though generation speed is slower.\u00a0\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842252293\",\"position\":3,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842252293\",\"name\":\"What ports need to be open for Open WebUI and Ollama?\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Open WebUI listens on port 8080 by default (commonly mapped to host port 3000 in Docker). Ollama listens on port 11434. Keep port 11434 internal. Don\u2019t publish it with Docker, which bypasses ufw. On public servers, allow it only from your Open WebUI host.\u00a0\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842266371\",\"position\":4,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842266371\",\"name\":\"How do I update Open WebUI to the latest version in Docker or pip?\u00a0\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"For Docker, pull the latest image with docker pull ghcr.io\\\/open-webui\\\/open-webui:main. Remove the old container with docker rm -f open-webui and rerun your docker run command with the same volume and WEBUI_SECRET_KEY. For Compose, run docker compose pull then docker compose up -d. For pip, execute pip install --upgrade open-webui.\u00a0\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"},{\"@type\":\"Question\",\"@id\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842278860\",\"position\":5,\"url\":\"https:\\\/\\\/www.bluehost.com\\\/blog\\\/how-to-install-open-webui\\\/#faq-question-1790842278860\",\"name\":\"How do I connect Open WebUI to OpenAI-compatible APIs or third-party LLMs?\u00a0\",\"answerCount\":1,\"acceptedAnswer\":{\"@type\":\"Answer\",\"text\":\"Go to <strong>Settings > Admin > Connections<\\\/strong> in Open WebUI. Click <strong>+<\\\/strong> next to <strong>Manage OpenAI API Connections<\\\/strong>. Enter the base URL of OpenAI or a compatible server (such as vLLM, LM Studio or LiteLLM) plus your API key, then save.\",\"inLanguage\":\"en-US\"},\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"How to Install Open WebUI: pip, Docker & Ollama","description":"Learn how to install Open WebUI using pip, Docker or Docker Compose and connect it to a local or remote Ollama server.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/280484\/","og_locale":"en_US","og_type":"article","og_title":"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0","og_description":"Learn how to install Open WebUI using pip, Docker or Docker Compose and connect it to a local or remote Ollama server.","og_url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/","og_site_name":"Bluehost Blog","article_publisher":"https:\/\/www.facebook.com\/bluehost\/","article_published_time":"2026-10-01T08:20:30+00:00","article_modified_time":"2026-10-01T08:20:34+00:00","og_image":[{"width":1731,"height":909,"url":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Open-WebUI-Cloud-Installation-Flow.png","type":"image\/png"}],"author":"Mohit Sharma","twitter_card":"summary_large_image","twitter_creator":"@bluehost","twitter_site":"@bluehost","twitter_misc":{"Written by":"Mohit Sharma","Est. reading time":"12 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#article","isPartOf":{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/"},"author":{"name":"Mohit Sharma","@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/person\/963ada146537ec6b6cc4d4f02e6c40c8"},"headline":"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0","datePublished":"2026-10-01T08:20:30+00:00","dateModified":"2026-10-01T08:20:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/"},"wordCount":2786,"commentCount":0,"publisher":{"@id":"https:\/\/www.bluehost.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Open-WebUI-Cloud-Installation-Flow.png","keywords":["How-To Guides"],"articleSection":["Open WebUI"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#respond"]}]},{"@type":["WebPage","FAQPage"],"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/","url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/","name":"How to Install Open WebUI: pip, Docker & Ollama","isPartOf":{"@id":"https:\/\/www.bluehost.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#primaryimage"},"image":{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#primaryimage"},"thumbnailUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Open-WebUI-Cloud-Installation-Flow.png","datePublished":"2026-10-01T08:20:30+00:00","dateModified":"2026-10-01T08:20:34+00:00","description":"Learn how to install Open WebUI using pip, Docker or Docker Compose and connect it to a local or remote Ollama server.","breadcrumb":{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#breadcrumb"},"mainEntity":[{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842208300"},{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842238395"},{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842252293"},{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842266371"},{"@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842278860"}],"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#primaryimage","url":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Open-WebUI-Cloud-Installation-Flow.png","contentUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2026\/10\/Open-WebUI-Cloud-Installation-Flow.png","width":1731,"height":909},{"@type":"BreadcrumbList","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Blog","item":"https:\/\/www.bluehost.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Hosting","item":"https:\/\/www.bluehost.com\/blog\/category\/hosting\/"},{"@type":"ListItem","position":3,"name":"VPS hosting","item":"https:\/\/www.bluehost.com\/blog\/category\/hosting\/vps-hosting\/"},{"@type":"ListItem","position":4,"name":"Open WebUI","item":"https:\/\/www.bluehost.com\/blog\/category\/hosting\/vps-hosting\/open-webui\/"},{"@type":"ListItem","position":5,"name":"How to Install Open WebUI: A Complete Setup and Hosting Guide\u00a0"}]},{"@type":"WebSite","@id":"https:\/\/www.bluehost.com\/blog\/#website","url":"https:\/\/www.bluehost.com\/blog\/","name":"Bluehost","description":"","publisher":{"@id":"https:\/\/www.bluehost.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.bluehost.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.bluehost.com\/blog\/#organization","name":"Bluehost","url":"https:\/\/www.bluehost.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2023\/08\/bluehost-logo.svg","contentUrl":"https:\/\/www.bluehost.com\/blog\/wp-content\/uploads\/2023\/08\/bluehost-logo.svg","width":136,"height":24,"caption":"Bluehost"},"image":{"@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/bluehost\/","https:\/\/x.com\/bluehost","https:\/\/www.linkedin.com\/company\/bluehost-com\/","https:\/\/www.youtube.com\/user\/bluehost","https:\/\/en.wikipedia.org\/wiki\/Bluehost"],"description":"Bluehost is an all-in-one platform that empowers small businesses, developers, and agencies to build, grow, and run online with confidence through high-performance hosting, AI-powered tools, and real human support.","telephone":"+1-888-401-4678"},{"@type":"Person","@id":"https:\/\/www.bluehost.com\/blog\/#\/schema\/person\/963ada146537ec6b6cc4d4f02e6c40c8","name":"Mohit Sharma","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g2db1a2f67f45c93b46c4cb340a8d96bc","url":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g","caption":"Mohit Sharma"},"description":"I\u2019m a Content Specialist at Bluehost with 3+ years of experience creating technical, business and SEO-focused content. I specialize in VPS, dedicated hosting, agency solutions and AI. I enjoy breaking down complex topics into clear, practical insights that help businesses, agencies and developers make informed decisions and grow online.","sameAs":["https:\/\/www.linkedin.com\/in\/mohitsharma066\/"],"honorificPrefix":"Mr","birthDate":"1996-10-06","gender":"male","knowsAbout":["HTML","WordPress","Writing"],"knowsLanguage":["English","Hindi"],"jobTitle":"Web Content Writer","worksFor":"Newfold Digital","url":"https:\/\/www.bluehost.com\/blog\/author\/mohit-sharma\/"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842208300","position":1,"url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842208300","name":"How do I fix connection refused errors between Open WebUI and Ollama?\u00a0","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Connection errors occur when Ollama binds only to localhost (127.0.0.1), blocking Docker containers. Set OLLAMA_HOST=0.0.0.0 on your Ollama host and restart Ollama. When running Open WebUI in Docker, set OLLAMA_BASE_URL=http:\/\/host.docker.internal:11434.\u00a0","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842238395","position":2,"url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842238395","name":"Can I run Open WebUI without a dedicated GPU?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Yes. Open WebUI itself does not need a GPU, though its built-in document embedding uses CPU and RAM. Model inference depends on Ollama, which can run models on system CPU and RAM if no GPU is available, though generation speed is slower.\u00a0","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842252293","position":3,"url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842252293","name":"What ports need to be open for Open WebUI and Ollama?","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Open WebUI listens on port 8080 by default (commonly mapped to host port 3000 in Docker). Ollama listens on port 11434. Keep port 11434 internal. Don\u2019t publish it with Docker, which bypasses ufw. On public servers, allow it only from your Open WebUI host.\u00a0","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842266371","position":4,"url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842266371","name":"How do I update Open WebUI to the latest version in Docker or pip?\u00a0","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"For Docker, pull the latest image with docker pull ghcr.io\/open-webui\/open-webui:main. Remove the old container with docker rm -f open-webui and rerun your docker run command with the same volume and WEBUI_SECRET_KEY. For Compose, run docker compose pull then docker compose up -d. For pip, execute pip install --upgrade open-webui.\u00a0","inLanguage":"en-US"},"inLanguage":"en-US"},{"@type":"Question","@id":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842278860","position":5,"url":"https:\/\/www.bluehost.com\/blog\/how-to-install-open-webui\/#faq-question-1790842278860","name":"How do I connect Open WebUI to OpenAI-compatible APIs or third-party LLMs?\u00a0","answerCount":1,"acceptedAnswer":{"@type":"Answer","text":"Go to <strong>Settings > Admin > Connections<\/strong> in Open WebUI. Click <strong>+<\/strong> next to <strong>Manage OpenAI API Connections<\/strong>. Enter the base URL of OpenAI or a compatible server (such as vLLM, LM Studio or LiteLLM) plus your API key, then save.","inLanguage":"en-US"},"inLanguage":"en-US"}]}},"authors":[{"term_id":842,"user_id":138,"is_guest":0,"slug":"mohit-sharma","display_name":"Mohit Sharma","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/ef26790cc4942b0fc60957ce3a9d0854c759a20994b106b99defa5385a80dcca?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":"","9":"","10":"","11":"","12":"","13":"","14":"","15":""}],"_links":{"self":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/280484","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/users\/138"}],"replies":[{"embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/comments?post=280484"}],"version-history":[{"count":1,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/280484\/revisions"}],"predecessor-version":[{"id":280494,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/posts\/280484\/revisions\/280494"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/media\/280493"}],"wp:attachment":[{"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/media?parent=280484"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/categories?post=280484"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/tags?post=280484"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.bluehost.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=280484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}