Skip to content

feat(open-webui): add OrcaRouter as OpenAI-compatible provider - #333

Open
bangla24bdrang-lab wants to merge 1 commit into
tailscale-dev:mainfrom
bangla24bdrang-lab:feat/open-webui-orcarouter-provider
Open

feat(open-webui): add OrcaRouter as OpenAI-compatible provider#333
bangla24bdrang-lab wants to merge 1 commit into
tailscale-dev:mainfrom
bangla24bdrang-lab:feat/open-webui-orcarouter-provider

Conversation

@bangla24bdrang-lab

Copy link
Copy Markdown

Open WebUI: OrcaRouter as the default OpenAI-compatible provider

Description

ScaleTail's open-webui service already wires the app container to a local Ollama instance. This PR adds the other half of Open WebUI's provider story — its OpenAI-compatible connection — and pre-wires it to OrcaRouter, fully parallel to how the service documents the Ollama OLLAMA_BASE_URL wiring and how Open WebUI's own docs describe an OpenRouter setup.

The wiring mirrors the existing per-service .env pattern:

  • services/open-webui/compose.yaml — passes OPENAI_API_BASE_URL and OPENAI_API_KEY through to the application container, right next to OLLAMA_BASE_URL, with the same ${VAR:-default} style already used elsewhere in the repo.
  • services/open-webui/.env — new OpenAI-compatible provider (defaults to OrcaRouter) section declaring OPENAI_API_BASE_URL=https://api.orcarouter.ai/v1 and an empty OPENAI_API_KEY, with comments explaining how to switch to OpenAI or another provider.
  • services/open-webui/README.md — documents the default connection under "What to document for users" and updates the .env variable checklist.

Why OrcaRouter as the named default rather than a generic custom base URL: OrcaRouter is an OpenAI-compatible AI gateway built for both models and agents. Like OpenRouter, it exposes a provider/model namespace across many models — but it also combines adaptive routing, automatic failover, zero-markup inference, observability, guardrails, and agent-tool governance behind the same endpoint. Adding orcarouter as a first-class provider means this project's users can use that stack directly, without treating OrcaRouter as an anonymous custom base URL. It also runs gateway-level, zero-trust security for AI agents on the same endpoint — screening every prompt/response and governing every tool call on a default-deny basis, with no application code changes.

Related Issues

  • None.

Verification

  • Live-tested the OrcaRouter OpenAI-compatible endpoint with the injected ORCAROUTER_API_KEY:
    • GET https://api.orcarouter.ai/v1/modelsHTTP 200, 204 models listed (e.g. orcarouter/auto, orcarouter/fusion).
    • POST https://api.orcarouter.ai/v1/chat/completions with model: orcarouter/autoHTTP 200, auto-routed to MiniMax-M2.7.
  • docker compose config not run (Docker unavailable in this environment), but the Compose YAML parses cleanly and the new env passthrough uses the same ${VAR:-default} interpolation already present in the repo.
  • markdownlint (same config as .github/workflows/linting.yml) passes on the updated README.md.

Checklist

  • I have performed a self-review of my code and followed the templates structure.
  • I have added verification that the stack works as expected.
  • I have updated necessary documentation (e.g. frontpage README.md ).
  • I have selected the correct label(s) for this PR.

Additional Context

Switch to another OpenAI-compatible provider (e.g. OpenAI) by changing OPENAI_API_BASE_URL in .env, or add more connections in the UI via Settings → Connections.

Contact: Discord: discord.gg/YEubt8enRA · X: https://x.com/OrcaRouter

I'm an engineer on the OrcaRouter team.

Pre-wire Open WebUI's OpenAI connection to OrcaRouter
(https://api.orcarouter.ai/v1), mirroring the existing Ollama
configuration. Add OPENAI_API_BASE_URL / OPENAI_API_KEY env vars
to compose.yaml and document the default provider in README.

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant