Get going in 30 seconds
Create a docker-compose.yml with:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
OPENAI_API_BASE_URL: https://northerninference.ca/v1
OPENAI_API_KEY: ni_live_YOUR_KEY_HERE
volumes:
- open-webui:/app/backend/data
Then:
docker compose up -d
Open http://localhost:3000, sign in, go to Settings → Admin Settings → Connections, and click Refresh to pull the model list. Pick any NI route and start chatting.
Open WebUI is a self-hostable ChatGPT-style frontend. It supports OpenAI-compatible backends natively.
Docker compose snippet
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
environment:
OPENAI_API_BASE_URL: https://northerninference.ca/v1
OPENAI_API_KEY: ni_live_YOUR_KEY_HERE
# Optional: enable multiple endpoints (e.g. NI + local Ollama)
# OPENAI_API_BASE_URLS: "https://northerninference.ca/v1;http://ollama:11434/v1"
# OPENAI_API_KEYS: "ni_live_YOUR_KEY;ollama"
volumes:
- open-webui:/app/backend/data
docker compose up -d
Open http://localhost:3000, sign in, go to Settings → Admin Settings → Connections. The NI connection should be live; Refresh to pull the model list.
Per-user NI keys (multi-tenant)
Open WebUI has a Settings → Connections tab for each user. If you host Open WebUI internally and each user has their own NI key, let them paste it there instead of setting a global key in the compose file. NI will bill each user's team separately.
Route selection
The selected model ID is the route contract. Copy exact routing keys from /models or /api/billing/models into Open WebUI's model list. NI API key allowed route tiers control which routes the key may call.