Installing Open WebUI: A Proper Chat Interface
Install Open WebUI so you get a real, ChatGPT-style interface for your local models instead of a bare terminal.
Why a web interface, not just the terminal
If you followed the mini PC setup guide, you already have a model running - but only inside a terminal window, one line at a time, with no history you can scroll back through and no easy way to switch models mid-conversation. That's fine for confirming everything works. It's not how anyone wants to actually use this day to day.
Open WebUI is a self-hosted interface that looks and feels like ChatGPT - a proper chat window, saved conversation history, the ability to switch models from a dropdown, even support for uploading images and documents depending on the model. It runs entirely on your machine and talks to Ollama in the background. In this default setup, nothing about your conversations leaves your network - that stays true right up until you deliberately add something that reaches outward, like web-connected tools or a bot integration, both covered later.
Installing Docker
Open WebUI runs inside Docker, a tool that packages an application with everything it needs so it runs the same way on any machine. You don't need to understand how Docker works to use it here - just install it and run one command.
Windows and Mac
Download Docker Desktop for your operating system from docker.com, install it like any other application, and open it once so the background service starts. You'll see a small whale icon in your menu bar or system tray when it's running.
Linux, including a headless mini PC
Docker Desktop is a GUI application, so it doesn't apply here - there's no menu bar or tray to check on a headless box. Install Docker Engine directly instead, which runs as a background service with no interface at all:
curl -fsSL https://get.docker.com | sh
Confirm it's running with:
sudo systemctl status docker
If it isn't, start it with sudo systemctl start docker. Everything else in this guide - the docker run command, checking with docker ps, restarting the container - works identically on Docker Engine; only the install and "is it running" steps differ from Windows/Mac.
Installing Open WebUI
With Docker running, open a terminal and run this single command:
docker run -d -p 127.0.0.1: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
Here's what that's actually doing, briefly: it downloads the Open WebUI application, connects it to the Ollama already running on your machine, and sets it to start automatically whenever your mini PC restarts. The first run will take a few minutes to download - that's normal.
127.0.0.1: in that command means Open WebUI only listens on this machine - nothing else on your network can reach it yet. That's the safe starting point. When you're ready to reach it from your phone or another device, Accessing Your Setup From Other Devices covers deliberately opening it up.
Once it finishes, open a browser and go to:
http://localhost:3000
Create an account on the first-run screen. This account lives only on your machine - it's not sent anywhere, it just keeps your chat history separated if more than one person uses this setup.
Planning to keep this running long-term rather than as a one-time experiment? Docker Compose for a Maintainable Open WebUI Setup covers moving this exact command into a single reviewable file - worth doing once, not required to get started.
Your first real chat
Pick a model from the dropdown at the top of the screen - if you followed the mini PC guide, llama3.2 will already be there. Type a message like you would in any chat app.
This is the moment the whole setup starts to feel real: a genuine chat interface, running entirely on hardware sitting in your house, with nothing going out to a company's servers.
docker run command above binds Open WebUI to 127.0.0.1 specifically, so nothing else on your network - or the internet - can see it yet. That's deliberate. When you're ready to reach it from your phone or another device on the same Wi-Fi, Accessing Your Setup From Other Devices covers opening that up on purpose. Want it reachable when you're away from home too, without exposing anything publicly? Access Your Local AI From Anywhere covers that instead.
What actually goes wrong
The page at localhost:3000 won't load
Confirm the container is actually running:
docker ps
You should see open-webui in the list. If it's not there, Docker likely wasn't running when you ran the install command - start Docker Desktop (Windows/Mac) or sudo systemctl start docker (Linux), then run the same docker run command again.
Open WebUI loads, but no models show up
This almost always means Open WebUI can't reach Ollama. Confirm Ollama itself is running with ollama ps in a terminal outside of Docker. If Ollama is running but Open WebUI still can't see it, restart the container:
docker restart open-webui
Still not connecting after that? Ollama Is Running, But Open WebUI Can't Connect covers the deeper checks - the connection URL Open WebUI is actually using, and stale duplicate containers.
Models show up fine, but sending a message fails
This is a different problem than models not appearing at all - see Open WebUI Logs In, But Chats Fail for what to check.
Port 3000 is already in use
Something else on your machine is using that port. Change the first number in the original command - for example -p 127.0.0.1:3001:8080 - and access it at localhost:3001 instead.
The container keeps restarting instead of staying up
See Docker Container Keeps Restarting - docker logs open-webui will show the actual reason rather than needing to guess.
Common questions
Do I need to know Docker to do this?
Can I access Open WebUI from my phone?
Go deeper
This guide covers one solid path. Here's where to go if you want something different.
Changelog
- 2026-08-31: Changed the default install to bind Open WebUI to 127.0.0.1 (local-only) instead of all network interfaces - LAN and remote access are now opt-in steps, not default behavior.
- 2026-08-31: Corrected an inaccurate claim about default network reachability, and added separate Linux/Docker Engine install steps for headless setups.
Written from hands-on security operations experience. More about this site →