Open WebUI
A self-hosted chat UI. Add plugboard as an OpenAI connection.
Connect
In the UI: Admin Panel → Settings → Connections → OpenAI API, with URL http://127.0.0.1:4010/v1 (or http://host.docker.internal:4010/v1 from the container) and your plugboard key. Or set the connection in compose:
yml
services:
open-webui:
image: ghcr.io/open-webui/open-webui:0.12.0
restart: unless-stopped
ports:
- "127.0.0.1:3000:8080"
# Lets the container reach the host's plugboard port on Linux. Docker Desktop and Colima
# already provide the name; the entry is harmless there.
extra_hosts:
- "host.docker.internal:host-gateway"
environment:
OPENAI_API_BASE_URL: http://host.docker.internal:4010/v1
OPENAI_API_KEY: ${PLUGBOARD_KEY_OPEN_WEBUI:?set PLUGBOARD_KEY_OPEN_WEBUI to the open-webui plugboard key}
# Only the plugboard connection: no local Ollama.
ENABLE_OLLAMA_API: "false"
# Preselect the alias from plugboard's `aliases` option in new chats.
DEFAULT_MODELS: fast
volumes:
- open-webui:/app/backend/data
volumes:
open-webui:Save it as docker-compose.yml, export PLUGBOARD_KEY_OPEN_WEBUI, and run docker compose up -d. A container reaches plugboard only when plugboard binds a non-loopback address with keys set: see Serving other machines.
What works
- Chat with streaming. Pick a model or type an alias such as
fast. - Tools, with Function Calling on its default (native) or
legacy. Open WebUI runs the tool and sends the result back. - Image input, and
response_formatthrough Open WebUI's API.
Limits
- Every chat carries Open WebUI's built-in tools (about 30), even with none selected, so a short chat costs several thousand prompt tokens.
- Each turn also sends follow-up, title and tag requests to the same model. Turn them off in Open WebUI's task settings if you don't want them.
- Allowing whole providers gives a model list of hundreds of entries. Narrow
modelsto what you use.