Self-hosted Bifrost AI gateway — OpenAI-compatible API plus dashboard, pinned to v2.0.0, SQLite, no extra services.
Bifrost is an open-source AI gateway. This template follows the official runtime contract (image v2.0.0): one Go process, SQLite on /app/data, dashboard and inference on the same HTTP port.
The stack:
maximhq/bifrost:v2.0.0 (API, dashboard, SQLite config store, SQLite logs store)No PostgreSQL, Redis, or extra workers. OSS SQLite is single-replica only.
The image is ~87 MB. 0.5–1 vCPU and 512 MB–1 GB RAM is enough for personal or small-team traffic.
The gateway domain is required. Dashboard auth is on from first boot (admin / auto-generated password). Find BIFROST_ADMIN_PASSWORD and BIFROST_VIRTUAL_KEY on the bifrost service env tab.
Optional upstream keys (OPENAI_API_KEY, ANTHROPIC_API_KEY, OPENROUTER_API_KEY, DEEPSEEK_API_KEY) are wired through config.json as env.* references. Leave them blank and add providers in the dashboard if you prefer. More providers (Gemini, Azure, Bedrock, Groq, Ollama, …) can be added in the UI without redeploying.
BIFROST_ENCRYPTION_KEY is auto-generated and must stay stable across restarts. Changing it makes persisted secrets unreadable.
Open the gateway domain. Sign in with:
adminBIFROST_ADMIN_PASSWORD from the env tabThen create extra virtual keys, budgets, or providers in the dashboard.
After /health returns 200 and at least one upstream key is set:
curl --fail-with-body --max-time 60 \
-X POST https://<your-domain>/v1/chat/completions \
-H "Authorization: Bearer <BIFROST_VIRTUAL_KEY>" \
-H "Content-Type: application/json" \
-d '{"model":"openai/gpt-4o-mini","messages":[{"role":"user","content":"Hello"}]}'
Admin basic auth also works: -u admin:<BIFROST_ADMIN_PASSWORD>.
Drop-in OpenAI SDK / GapSeek OPENAI_BASE_URL:
https://<your-domain>/openai
Use BIFROST_VIRTUAL_KEY as OPENAI_API_KEY. Model ids are provider/model, e.g. openai/gpt-4o-mini, anthropic/claude-sonnet-4-5, openrouter/deepseek/deepseek-chat.
| Need | This template |
|---|---|
OpenAI-compatible /v1 + /openai | Included |
| Built-in dashboard | Included (same domain) |
| Failover / load balance / virtual keys | Included (configure in UI) |
| Semantic cache, MCP, extra providers | Add in the dashboard |
| Multi-replica / HA | Not included; needs Bifrost Enterprise + PostgreSQL |
Do not expose an unauthenticated gateway. Inference calls require the virtual key (or admin basic auth) unless you turn that off in Security settings.
Image is pinned to maximhq/bifrost:v2.0.0 by digest (pulled 2026-09-03). Upstream also publishes :latest.