What it is
Open WebUI is a ChatGPT-style browser UI for local LLMs. Multiple providers, model switcher in the corner, conversation history, file uploads, RAG against my own documents if I set that up. It's the user-facing piece on top of LM Studio and Ollama — they expose APIs, this is the chat interface.
Why I run it
LM Studio has its own chat UI. The reason I run Open WebUI on top of it anyway:
- Browser-based, so I can use the same chat from any device on the network without the LM Studio desktop app running locally on each one.
- Multi-provider in one window — LM Studio models, Ollama models, and (if I want) hosted APIs all in the same model picker. Useful for comparing outputs.
- Conversation history stored centrally, accessible from anywhere.
- Mobile-friendly through the proxied internal hostname.
LM Studio's own UI is fine on the Zenbook. Open WebUI is what I use from everywhere else, and it is the internal browser face of the Zenbook AI host for the rest of the homelab.
How I use it
Two providers are configured: LM Studio (current daily driver) and Ollama (legacy fallback). The model picker shows them both — LM Studio models grouped under "External," Ollama under "Local." I pick whichever model fits the task: a 7B Qwen instruct for general chat, the reasoning-tuned DeepSeek when I want a longer chain of thought, Gemma multimodal when I need vision.
The connection to LM Studio uses host.docker.internal:1234/v1 because Open WebUI runs in Docker and localhost from inside the container resolves to the container itself, not the Zenbook's host. That confused me for a useful five minutes the first time.
Setup notes
- Host: a Docker container on the Zenbook, alongside Ollama on the same machine.
- Reverse proxy: yes, with websockets enabled — streaming LLM responses depend on websockets, and without them the chat hangs partway through a response.
- Backups: the conversation history lives in a Docker volume on the Zenbook. Not in the PBS schedule (the Zenbook isn't a Proxmox guest); for me that's an acceptable loss.
- Update cadence: manual.
Runbook
- Healthy looks like: page loads over the proxied hostname, model picker shows both providers' models, a test message streams a response token by token.
- Streaming responses cut off: websockets aren't enabled on the proxy host.
- LM Studio models missing from the picker: the OpenAI-compatible connection URL is wrong. From inside the Open WebUI container, the URL must be
http://host.docker.internal:1234/v1, nothttp://localhost:1234/v1. Test by opening the container's shell and curling the URL. - Service flapping at odd hours: Windows Update reboots the Zenbook. SSH checks now make this easier to diagnose headlessly, but it is still a Windows laptop rather than a Proxmox guest.
- Where logs live:
docker logs open-webuion the Zenbook.