Aurora: AI gateway fork for multi-IP setups, 55x faster than LiteLLM A developer known as entitybtw has released Aurora, a self-hosted AI gateway fork of aurorallm/aurora that claims to be 55x faster than LiteLLM and supports 14 provider types with OpenAI and Anthropic compatibility. The fork adds a redesigned dashboard, provider CRUD, fallback chains, provider pools, and a Session Hub, all managed via UI with persistence across restarts. The project is written in Go, licensed under Apache 2.0, and is available as a Docker image `entbtw/aurora`. One API for every AI provider. Self-hosted. No vendor lock-in. 14 provider types • OpenAI & Anthropic compatible • Go • Apache 2.0 • Built for raw speed Full guides, written for this fork. | Guide | What it covers | |---|---| | Getting Started /entitybtw/aurora/blob/main/documentation/GETTING STARTED.md | first run, build, config, basic usage, OpenAI-compatible client | | Deployment /entitybtw/aurora/blob/main/documentation/DEPLOYMENT.md | Docker / Docker Compose, persistent state files, multi-IP host networking | | Multi-account pools /entitybtw/aurora/blob/main/documentation/MULTI ACCOUNT.md | end-to-end: load-balanced accounts with distinct, stable client identities | | Session Hub /entitybtw/aurora/blob/main/documentation/SESSION HUB.md | header transformation & session mapping engine, header modes, API reference, dashboard | | Docker image /entitybtw/aurora/blob/main/documentation/DOCKER PUSH.md | published image entbtw/aurora , tags, how to build & publish | Quick deploy: docker pull entbtw/aurora:latest docker run -d --name aurora -p 8080:8080 -e AURORA MASTER KEY="your-secure-key" entbtw/aurora:latest See Deployment /entitybtw/aurora/blob/main/documentation/DEPLOYMENT.md for production persistent config & state, network mode: host for multi-IP . Dashboard-driven operations — no more .env -only workflows for the things you change most. Everything below is managed from the UI and persists across restarts . Warning: This fork contains custom features not present in the original aurorallm/aurora https://github.com/aurorallm/aurora . Some features dashboard redesign, session hub, UI enhancements were vibecoded and may contain rough edges. Designed for advanced API integration workflows — use at your own discretion. - Redesigned dashboard — full Catppuccin theme, mobile-responsive, compact/touch-friendly layout, clean auth/logo/sidebar, shared SearchInput fix in audit logs & usage. - Provider CRUD — manage providers from the UI base URL, API key, models, type . Per-provider bind ip , pool only , runtime enable/disable, live rename, duplicate protection. Status shows if a key is set without exposing it . OpenRouter list is now an allowlist ; vLLM type added to the dashboard was .env -only . - Custom User-Agent — set a custom User-Agent header per provider for upstream attribution e.g. OpenRouter recommends this for credits . - Auto-fetch models toggle — disable automatic /models discovery per provider to use only explicitly configured model lists. - Fallback chains — edit rules in the UI, applied at runtime ; callable by name, exposed in /v1/models , order preserved on toggle/edit/delete. - Provider pools — create/edit/delete with member selection and weighted / round-robin strategies; health-aware members, pool only models, live registry rebuild. - Response headers — configurable X-Actual-Provider / X-Actual-Model / X-Requested / X-Fallback-Chain , per-header toggles, custom headers, success/error/always modes, emitted on 429 / 401 . - Persistence — state saved to configs/provider-overrides.json , configs/pool-overrides.json , configs/fallback.json env-overridable ; Docker volumes keep it across recreation. - Session Hub — header transformation engine with per-provider/pool session mapping, inbound→outbound unique ID generation, disk persistence with live toggle, and pool-aware binding via UI see Session Hub session-hub below . Aurora sits between your app and LLM providers. Your app sends requests using the standard OpenAI or Anthropic SDK — Aurora routes them to whichever provider you've configured. One format handles everything — you dont need to worry about provider-specific formats. Before: hardcoded provider client = OpenAI base url="https://api.openai.com/v1", api key="sk-..." After: Aurora Gateway client = OpenAI base url="http://localhost:8080/v1", api key="your-aurora-key" No SDK changes. No format changes. Just swap the base url . - 14 provider types — OpenAI, Anthropic, Gemini, Groq, DeepSeek, OpenRouter, xAI, Z.ai, MiniMax, Azure OpenAI, Oracle, Ollama, vLLM, Jina - Auto-discovery — set an API key as an env var, restart, provider + all its models appear automatically - Auto-fetch toggle — disable per-provider model auto-discovery to use only explicitly configured model lists - Custom User-Agent — set a custom User-Agent header per provider for upstream attribution or branding - Provider pools — group multiple keys/endpoints, load-balance with round-robin or weighted distribution, health-aware failover - Model aliases — rename/remap any model to a custom identifier across the entire gateway - Model overrides — enable or disable specific models per user path, persisted via dashboard or user pricing.yaml - Fallback — automatic failover on 5xx/429, or manual rules from config or external JSON mapping failed provider+model to backups - Resilience — exponential backoff with jitter, circuit breaker per provider closed → open → half-open , per-provider override of global retry/circuit-breaker settings - Multiple instances — run OPENAI EAST API KEY and OPENAI WEST API KEY as separate providers - Custom base URLs — override any provider's endpoint corporate proxies, regional endpoints - Passthrough — /p/{provider}/ for full upstream API access not just chat completions ; filter which provider types get passthrough routes - Config-driven workflows — per-request routing, caching, guardrail, audit, usage, budget, and fallback behavior controlled by persisted workflow documents - OpenAI-compatible — /v1/chat/completions , /v1/embeddings , /v1/rerank , /v1/models , /v1/files , /v1/batches - Responses API — /v1/responses with full CRUD, cancel, input items, compact - Anthropic-compatible — /v1/messages , /v1/messages/count tokens native Anthropic wire format ; optional dedicated ingress at /v1/messages - Streaming — SSE streaming for all endpoints, preserved end-to-end - Keep-only-aliases mode — hide raw provider models from /v1/models and expose only aliased names - Configured provider models mode — fallback add listed models to auto-discovered or allowlist only serve explicitly listed models - Exact cache — SHA-256 hash match on request, Redis-backed, async writes - Semantic cache — vector similarity with configurable threshold, supports Qdrant, pgvector, Pinecone, Weaviate - Prompt cache — forwards cache control to Anthropic/OpenAI/Gemini native prompt caching; configurable modes auto , manual , off , component toggles, and minimum token threshold - Model registry cache — local filesystem + Redis, offline-safe; supports vendored JSON snapshots with per-field user pricing overrides - Master key — top-level gateway auth - Managed API keys — scoped, rate-limited, per-key model authorization, usage stats - Rate limiting — per-key rate limiting backed by in-memory or Redis - PII redaction — email, phone, SSN, credit card detection and masking - Prompt injection blocking — detects and blocks injection attempts - System prompt protection — inject, override, or decorate system prompts - Regex blocking — custom pattern matching with block or sanitize actions - Length limits — character/token count enforcement on requests - LLM-based altering — guardrail that rewrites message content via an auxiliary LLM call anonymization, custom prompts - Guardrail direction & ordering — run before provider dispatch input , after response output , or both; same-order guardrails run in parallel - Batch guardrails — apply configured guardrails to inline items in /v1/batches requests - Audit logging — full request/response capture, buffered writes, configurable retention body/header logging, buffer size, flush interval , live SSE stream - Usage analytics — per-model token counting, cost tracking, daily aggregation by model/user-path, pricing recalculation action - Prometheus metrics — aurora requests total , aurora request duration seconds , aurora requests in flight , plus gateway phase timing - Admin dashboard — React SPA built into the Go binary Catppuccin, fully mobile-responsive : full provider CRUD, fallback chains, provider pools, response-header config, plus models, aliases, guardrails, cache, usage, audit, auth keys, workflows, console, playground - pprof endpoints — Go runtime profiling at /debug/pprof/ heap, goroutine, mutex, block, threadcreate - Structured logging — configurable format JSON/text , level debug/info/warn/error , source info, service metadata - Token saver — policy-driven output compression profiles: concise, caveman, ultra, wenyan ; scoped to specific models/providers via include/exclude filters; configurable on-error behavior allow/block - Pricing management — per-model pricing overrides, recalculation, import/export - Usage budgets — per-key usage tracking and limits, per-request budget enforcement via workflow feature flags - Single binary — docker pull entbtw/aurora this fork or run from source with Go - CLI — run from source, or drive via config files + the dashboard - CLI tools API — admin REST endpoints for CLI configuration sync, gated separately - Swagger docs — /swagger/index.html build-tag gated - Config profiles — pre-built configs for local, local-power, and team deployments - 3-layer config — code defaults → config.yaml → env vars env vars win Header transformation engine for API integration workflows where upstream services require unique client identifiers per account. - Per-provider/pool binding — attach transformation rules to specific providers, pools, fallbacks, or all targets - 6 header modes — map stable inbound→outbound per provider , generate fresh ID each request , passthrough , static , random from list , remove - Pool-aware — rules bound to a pool automatically apply to all member providers - Inbound header forwarding — client session headers are forwarded through the translation layer so map mode works even when the provider path drops arbitrary inbound headers - Lock-free hot path — Apply is a single atomic map read; benchmarked at ~495 ns/op negligible - Persistent or in-memory — toggled live via API or dashboard PUT /admin/api/v1/sessionhub/storage {"mode":"disk"} - Dashboard UI — Settings → Session Hub: binding overview from live server targets pools/providers , add rule by selecting target, live mapping viewer, storage toggle 1. Client sends request to Aurora e.g. with x-opencode-session: ses abc123 2. Gateway intercepts the inbound session header and stores it in request context 3. Request is routed to a pool member e.g. opencode-zen → vllm-zen-backup 4. Provider's outbound headerSetter fires: session hub applies rules for that provider/pool 5. map mode: inbound ses abc123 → unique outbound ses xR4f8k2m... per provider stable, deduplicated 6. generate mode: fresh random ses ... per request always unique 7. Additional headers x-opencode-client , user-agent are injected per rule 8. Outbound request goes to upstream with transformed headers Rules are persisted in configs/session-hub-rules.yaml gitignored . Live edits via API or dashboard are auto-saved. enabled: true mapping storage: disk "memory" or "disk" providers: opencode-zen: matches pool name or provider name enabled: true headers: - name: x-opencode-session mode: map stable inbound→outbound per provider prefix: "ses " length: 28 - name: x-opencode-client mode: static value: cli - name: user-agent mode: static value: "opencode/1.18.26 ai-sdk/openai/2.0.0 runtime/bun/1.0.0" | Method | Endpoint | Description | |---|---|---| | GET | /admin/api/v1/sessionhub/status | Stats + storage mode | | GET | /admin/api/v1/sessionhub/providers | List bound rules | | POST | /admin/api/v1/sessionhub/providers | Create rule | | PUT | /admin/api/v1/sessionhub/providers/:name | Update rule | | DELETE | /admin/api/v1/sessionhub/providers/:name | Delete rule | | GET | /admin/api/v1/sessionhub/mappings | List live mappings | | DELETE | /admin/api/v1/sessionhub/mappings | Clear all mappings | | PUT | /admin/api/v1/sessionhub/storage | Toggle memory / disk | | POST | /admin/api/v1/sessionhub/apply | Test transform | | Mode | Behavior | |---|---| | map | First request generates unique outbound value per provider; subsequent requests with same inbound reuse it | | generate | Fresh random value every request | | passthrough | Original value forwarded unchanged | | static | Fixed value set value: | | random from list | Random pick from values: list | | remove | Strip header entirely | Start routing AI traffic in 60 seconds. Recommended — Docker published image : docker pull entbtw/aurora:latest docker run -d --name aurora -p 8080:8080 -e AURORA MASTER KEY="your-secure-key" entbtw/aurora:latest Full examples below. For production persistent state, multi-IP see the Deployment guide /entitybtw/aurora/blob/main/documentation/DEPLOYMENT.md . The quickest way to configure providers from scratch is the dashboard: http://localhost:8080/admin/dashboard http://localhost:8080/admin/dashboard → Providers → Add provider . For env-var driven setups: Linux / macOS AURORA MASTER KEY=your-secure-key \ OPENAI API KEY=sk-... \ ANTHROPIC API KEY=sk-ant-... \ GEMINI API KEY=... \ GROQ API KEY=gsk ... \ DEEPSEEK API KEY=... \ OPENROUTER API KEY=... \ XAI API KEY=... \ ZAI API KEY=... \ MINIMAX API KEY=... \ AZURE API KEY=... \ ORACLE API KEY=... \ OLLAMA API KEY=... \ VLLM API KEY=... \ JINA API KEY=... \ LOGGING ENABLED=true \ METRICS ENABLED=true \ GUARDRAILS ENABLED=true \ TOKEN SAVER ENABLED=true \ aurora Windows PowerShell $env:AURORA MASTER KEY="your-secure-key"; $env:OPENAI API KEY="sk-..."; $env:ANTHROPIC API KEY="sk-ant-..."; $env:GEMINI API KEY="..."; $env:GROQ API KEY="gsk ..."; $env:DEEPSEEK API KEY="..."; $env:OPENROUTER API KEY="..."; $env:XAI API KEY="..."; $env:ZAI API KEY="..."; $env:MINIMAX API KEY="..."; $env:AZURE API KEY="..."; $env:ORACLE API KEY="..."; $env:OLLAMA API KEY="..."; $env:VLLM API KEY="..."; $env:JINA API KEY="..."; $env:LOGGING ENABLED="true"; $env:METRICS ENABLED="true"; $env:GUARDRAILS ENABLED="true"; $env:TOKEN SAVER ENABLED="true"; aurora Windows CMD set AURORA MASTER KEY=your-secure-key ^ && set OPENAI API KEY=sk-... ^ && set ANTHROPIC API KEY=sk-ant-... ^ && set GEMINI API KEY=... ^ && set GROQ API KEY=gsk ... ^ && set DEEPSEEK API KEY=... ^ && set OPENROUTER API KEY=... ^ && set XAI API KEY=... ^ && set ZAI API KEY=... ^ && set MINIMAX API KEY=... ^ && set AZURE API KEY=... ^ && set ORACLE API KEY=... ^ && set OLLAMA API KEY=... ^ && set VLLM API KEY=... ^ && set JINA API KEY=... ^ && set LOGGING ENABLED=true ^ && set METRICS ENABLED=true ^ && set GUARDRAILS ENABLED=true ^ && set TOKEN SAVER ENABLED=true ^ && aurora Published image: entbtw/aurora · tags latest , v1.0.0 . docker pull entbtw/aurora:latest docker run -d --name aurora -p 8080:8080 \ -e AURORA MASTER KEY="your-secure-key" \ -e OPENAI API KEY="sk-..." \ -e ANTHROPIC API KEY="sk-ant-..." \ -e GEMINI API KEY="..." \ -e GROQ API KEY="gsk ..." \ -e DEEPSEEK API KEY="..." \ -e OPENROUTER API KEY="..." \ -e XAI API KEY="..." \ -e ZAI API KEY="..." \ -e MINIMAX API KEY="..." \ -e AZURE API KEY="..." \ -e ORACLE API KEY="..." \ -e OLLAMA API KEY="..." \ -e VLLM API KEY="..." \ -e JINA API KEY="..." \ -e LOGGING ENABLED=true \ -e METRICS ENABLED=true \ -e GUARDRAILS ENABLED=true \ -e TOKEN SAVER ENABLED=true \ entbtw/aurora:latest For production setups persistent config/state, multi-IP host networking see the Deployment guide /entitybtw/aurora/blob/main/documentation/DEPLOYMENT.md . After starting, confirm the gateway is up and the dashboard loads: Health check curl -s http://localhost:8080/health Dashboard open http://localhost:8080/admin/dashboard Session Hub status should show storage mode: disk or memory curl -s http://localhost:8080/admin/api/v1/sessionhub/status \ -H "Authorization: Bearer your-master-key" If health returns {"status":"ok"} — the gateway is running. Now add a provider via the dashboard or env vars, then test a model call: OpenAI format curl http://localhost:8080/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-master-key" \ -d '{"model":"groq/llama-4-scout-17b-16e-instruct","messages": {"role":"user","content":"Hello "} }' Anthropic format with streaming curl http://localhost:8080/v1/messages \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-master-key" \ -H "anthropic-version: 2023-06-01" \ -d '{ "model": "anthropic/claude-sonnet-5-20260630", "max tokens": 1024, "stream": true, "messages": {"role": "user", "content": "Hello "} }' Embeddings curl http://localhost:8080/v1/embeddings \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-master-key" \ -d '{"model":"openai/text-embedding-3-small","input":"Hello world"}' Reranking Jina curl http://localhost:8080/v1/rerank \ -H "Content-Type: application/json" \ -H "Authorization: Bearer your-master-key" \ -d '{"model":"jina/jina-reranker-v2-base-multilingual","query":"test","documents": "doc1","doc2" }' Dashboard: http://localhost:8080/admin/dashboard Docs this fork : Getting Started /entitybtw/aurora/blob/main/documentation/GETTING STARTED.md · Deployment /entitybtw/aurora/blob/main/documentation/DEPLOYMENT.md · Session Hub /entitybtw/aurora/blob/main/documentation/SESSION HUB.md · Docker image /entitybtw/aurora/blob/main/documentation/DOCKER PUSH.md Source: github.com/entitybtw/aurora https://github.com/entitybtw/aurora · Image: hub.docker.com/r/entbtw/aurora https://hub.docker.com/r/entbtw/aurora Base project upstream : aurorallm/aurora https://github.com/aurorallm/aurora · aurorallm.online/docs https://aurorallm.online/docs Providers are auto-discovered from environment variables . Set any provider's API KEY and restart — the provider and its default models appear automatically. Security note: The env var names below are documentation references. Actual secrets go into your .env file in .gitignore or your deployment secrets manager — never commit them. | Provider | Env var | Default base URL | Requires base URL | API key required | Default models | |---|---|---|---|---|---| | OpenAI | OPENAI API KEY | https://api.openai.com/v1 | No | Yes | gpt-5.6-sol , gpt-5.6-luna | | Anthropic | ANTHROPIC API KEY | https://api.anthropic.com/v1 | No | Yes | claude-sonnet-5 , claude-fable-5 | | Google Gemini | GEMINI API KEY | https://generativelanguage.googleapis.com/v1beta/openai | No | Yes | gemini-3.1-pro , gemini-3.5-flash | | Groq | GROQ API KEY | https://api.groq.com/openai/v1 | No | Yes | llama-4-scout-17b , llama-4-maverick-17b , qwen3-32b | | DeepSeek | DEEPSEEK API KEY | https://api.deepseek.com | No | Yes | deepseek-v4-pro , deepseek-v4-flash | | OpenRouter | OPENROUTER API KEY | https://openrouter.ai/api/v1 | No | Yes | 300+ models | | xAI Grok | XAI API KEY | https://api.x.ai/v1 | No | Yes | grok-4.5 , grok-4.3 | | Z.ai | ZAI API KEY | https://api.z.ai/api/paas/v4 | No | Yes | glm-5.2 | | MiniMax | MINIMAX API KEY | https://api.minimax.io/v1 | No | Yes | minimax-m3 | | Azure OpenAI | AZURE API KEY | — | Yes | Yes | Your deployments | | Oracle | ORACLE API KEY | — | Yes | Yes | cohere.command-r-plus | | Ollama | OLLAMA API KEY | http://localhost:11434/v1 | No | No optional | Any local model | | vLLM | VLLM API KEY | http://localhost:8000/v1 | No | No optional | Any served model | | Jina reranker | JINA API KEY | — | Yes | Yes | jina-embeddings-v3 | Every provider supports MODELS to override auto-discovered models: OPENAI MODELS=gpt-5.6-sol,gpt-5.6-terra,gpt-5.6-luna Custom base URL: OPENAI BASE URL=https://my-corp-openai-proxy.example.com/v1 YAML provider config supports additional options: providers: openai: type: openai api key: "${OPENAI API KEY}" base url: "https://api.openai.com/v1" Custom User-Agent header for upstream attribution user agent: "MyApp/1.0" Disable auto-fetching models from /models endpoint use only configured list auto fetch models: false models: - gpt-4o - gpt-4o-mini Multiple instances of the same provider underscores become hyphens in the provider name : OPENAI EAST API KEY=sk-... → provider: openai-east OPENAI WEST API KEY=sk-... → provider: openai-west Azure requires API version: AZURE API VERSION=2024-10-21 OpenRouter extras: OPENROUTER SITE URL=https://github.com/entitybtw/aurora OPENROUTER APP NAME=Aurora Gateway The gateway loads settings in this priority order later wins : code defaults → config.yaml → .env / environment variables Generated by aurora init , every section of config.yaml is documented inline: | Section | What it controls | |---|---| | server | Port, base path, master key, passthrough, Anthropic ingress | | admin | Dashboard API and UI | | models | Discovery, overrides, allowlisting | | storage | SQLite default , PostgreSQL, or MongoDB | | logging | Audit logging of requests/responses | | usage | Token tracking, pricing, retention | | metrics | Prometheus endpoint | | guardrails | Content safety filters | | cache | Model cache, response cache exact + semantic | | combos | Multi-model combo definitions | | token saver | Output compression | | fallback | Provider failover rules | | resilience | Retry + circuit breaker | | workflows | Policy-based request routing | Pre-built configs in configs/editions/ : | Profile | File | Use case | |---|---|---| | OSS | oss.env.example | Minimal local — SQLite, no Redis | | OSS Local Power | oss.local-power.env.example | SQLite + Redis exact cache | | OSS Team | oss.team.env.example | Postgres + Redis + Qdrant — full team deployment | export AURORA CONFIG PATH=configs/editions/oss.team.example.yaml Server & Security | Env var | Default | Description | |---|---|---| | PORT | 8080 | HTTP listening port | | BASE PATH | / | URL path prefix to mount under | | AURORA MASTER KEY | "" | Master API key for auth | | BODY SIZE LIMIT | 10M | Max request body size | | SWAGGER ENABLED | false | Enable Swagger UI at /swagger/index.html | | PPROF ENABLED | false | Enable pprof at /debug/pprof/ | | ENABLE PASSTHROUGH ROUTES | true | Provider-native passthrough at /p/{provider} | | ALLOW PASSTHROUGH V1 ALIAS | true | Allow /p/{provider}/v1/... alias routes | | ENABLED PASSTHROUGH PROVIDERS | openai,anthropic,openrouter,zai,vllm | Provider types for passthrough | | ENABLE ANTHROPIC INGRESS | false | Expose /v1/messages for native Anthropic clients | | DISABLE REQUEST LOGGING | false | Turn off request logging | | DISABLE REQUEST BODY SNAPSHOT | false | Don't snapshot request bodies | | DISABLE PASSTHROUGH SEMANTIC ENRICHMENT | false | Disable semantic enrichment on passthrough | HTTP Client & Proxy | Env var | Default | Description | |---|---|---| | HTTP TIMEOUT | 600 | Upstream request timeout seconds | | HTTP RESPONSE HEADER TIMEOUT | 600 | Timeout for upstream response headers | | HTTP PROXY | — | HTTP proxy URL for upstream calls | | HTTPS PROXY | — | HTTPS proxy URL | | NO PROXY | — | Hosts to exclude from proxy | Storage | Env var | Default | Description | |---|---|---| | STORAGE TYPE | sqlite | Backend: sqlite , postgresql , or mongodb | | SQLITE PATH | data/aurora.db | SQLite database file path | | POSTGRES URL | — | PostgreSQL connection string | | POSTGRES MAX CONNS | 10 | PostgreSQL connection pool max | | MONGODB URL | — | MongoDB connection string | | MONGODB DATABASE | aurora | MongoDB database name | Model Registry | Env var | Default | Description | |---|---|---| | MODEL LIST URL | https://raw.githubusercontent.com/aurorallm/aurora/refs/heads/main/docs-assets/assets/models.json | External model metadata registry | | MODEL LIST LOCAL PATH | data/models.local.json | Local model registry snapshot path | | MODEL LIST USER OVERRIDES PATH | data/user pricing.yaml | User pricing override file | | MODELS ENABLED BY DEFAULT | true | Default enabled state for provider models | | MODEL OVERRIDES ENABLED | true | Allow per-model overrides | | KEEP ONLY ALIASES AT MODELS ENDPOINT | false | Hide provider models, show only aliases | | CONFIGURED PROVIDER MODELS MODE | fallback | fallback or allowlist | Caching Model cache: | Env var | Default | Description | |---|---|---| | CACHE REFRESH INTERVAL | 3600 | Model registry cache refresh seconds | | AURORA CACHE DIR | .cache | Local filesystem cache directory | | REDIS URL | — | Redis connection URL enables Redis-backed model cache | | REDIS KEY MODELS | aurora:models | Redis key for model cache | | REDIS TTL MODELS | 86400 | Redis model cache TTL seconds | Response cache exact match : | Env var | Default | Description | |---|---|---| | RESPONSE CACHE SIMPLE ENABLED | false | Enable Redis exact-response cache | | REDIS KEY RESPONSES | aurora:response: | Redis key prefix for responses | | REDIS TTL RESPONSES | 3600 | Response cache TTL seconds | Semantic cache vector similarity : | Env var | Default | Description | |---|---|---| | SEMANTIC CACHE ENABLED | false | Enable semantic cache | | SEMANTIC CACHE THRESHOLD | 0.92 | Similarity threshold 0-1 | | SEMANTIC CACHE PROMPT SIMILARITY | 0.90 | Prompt similarity threshold | | SEMANTIC CACHE TTL | 3600 | Entry TTL seconds | | SEMANTIC CACHE MAX CONV MESSAGES | 3 | Recent conversation messages to embed | | SEMANTIC CACHE EXCLUDE SYSTEM PROMPT | false | Exclude system prompt from cache key | | SEMANTIC CACHE EMBEDDER PROVIDER | openai | Embedder provider name | | SEMANTIC CACHE EMBEDDER MODEL | text-embedding-3-small | Embedder model | | SEMANTIC CACHE VECTOR STORE TYPE | qdrant | Backend: qdrant , pgvector , pinecone , weaviate | | SEMANTIC CACHE QDRANT URL | http://localhost:6333 | Qdrant URL | | SEMANTIC CACHE QDRANT COLLECTION | aurora semantic | Qdrant collection name | | SEMANTIC CACHE QDRANT API KEY | — | Qdrant API key | | SEMANTIC CACHE PGVECTOR URL | — | pgvector connection string | | SEMANTIC CACHE PGVECTOR TABLE | aurora semantic cache | pgvector table name | | SEMANTIC CACHE PGVECTOR DIMENSION | 1536 | pgvector embedding dimension | | SEMANTIC CACHE PINECONE HOST | — | Pinecone host URL | | SEMANTIC CACHE PINECONE API KEY | — | Pinecone API key | | SEMANTIC CACHE PINECONE NAMESPACE | — | Pinecone namespace | | SEMANTIC CACHE PINECONE DIMENSION | 1536 | Pinecone embedding dimension | | SEMANTIC CACHE WEAVIATE URL | — | Weaviate URL | | SEMANTIC CACHE WEAVIATE CLASS | AuroraSemanticCache | Weaviate class name | | SEMANTIC CACHE WEAVIATE API KEY | — | Weaviate API key | Audit Logging | Env var | Default | Description | |---|---|---| | LOGGING ENABLED | false | Enable audit log to storage | | LOGGING LOG BODIES | true | Log request/response bodies | | LOGGING LOG HEADERS | true | Log headers sensitive headers redacted | | LOGGING ONLY MODEL INTERACTIONS | true | Skip health/metrics/admin endpoints | | LOGGING BUFFER SIZE | 1000 | In-memory queue capacity | | LOGGING FLUSH INTERVAL | 5 | Flush interval seconds | | LOGGING RETENTION DAYS | 30 | Auto-delete after N days 0 = forever | Usage Tracking | Env var | Default | Description | |---|---|---| | USAGE ENABLED | true | Enable token usage tracking | | USAGE PRICING RECALCULATION ENABLED | true | Allow admin pricing recalculation | | ENFORCE RETURNING USAGE DATA | true | Add stream options.include usage=true to streaming requests | | USAGE BUFFER SIZE | 1000 | In-memory queue capacity | | USAGE FLUSH INTERVAL | 5 | Flush interval seconds | | USAGE RETENTION DAYS | 90 | Auto-delete after N days 0 = forever | Guardrails | Env var | Default | Description | |---|---|---| | GUARDRAILS ENABLED | false | Enable content safety filters globally | | ENABLE GUARDRAILS FOR BATCH PROCESSING | false | Apply guardrails to /v1/batches items | Metrics | Env var | Default | Description | |---|---|---| | METRICS ENABLED | false | Enable Prometheus /metrics endpoint | | METRICS ENDPOINT | /metrics | Metrics endpoint path | Token Saver | Env var | Default | Description | |---|---|---| | TOKEN SAVER ENABLED | false | Enable output compression | | TOKEN SAVER ENDPOINTS | chat completions | Endpoints to apply it to | | TOKEN SAVER APPLY STREAMING | true | Apply to streaming responses | | TOKEN SAVER OUTPUT ENABLED | false | Enable output style/profile | | TOKEN SAVER OUTPUT PROFILE | concise | Profile: concise , caveman , ultra , wenyan | | TOKEN SAVER MODELS INCLUDE | — | Models to include comma-separated | | TOKEN SAVER MODELS EXCLUDE | — | Models to exclude | | TOKEN SAVER PROVIDERS INCLUDE | — | Providers to include | | TOKEN SAVER PROVIDERS EXCLUDE | — | Providers to exclude | | TOKEN SAVER ON ERROR | allow | Behavior on error: allow or block | | TOKEN SAVER EMIT HEADERS | true | Emit token-saver headers in response | | TOKEN SAVER AUDIT ENABLED | true | Log token-saver actions | Resilience | Env var | Default | Description | |---|---|---| | RETRY MAX RETRIES | 3 | Upstream retry count | | RETRY INITIAL BACKOFF | 1s | Initial backoff duration | | RETRY MAX BACKOFF | 30s | Maximum backoff duration | | RETRY BACKOFF FACTOR | 2.0 | Exponential backoff multiplier | | RETRY JITTER FACTOR | 0.1 | Random jitter fraction | | CIRCUIT BREAKER FAILURE THRESHOLD | 5 | Failures before circuit opens | | CIRCUIT BREAKER SUCCESS THRESHOLD | 2 | Successes before circuit closes | | CIRCUIT BREAKER TIMEOUT | 30s | Time before half-open retry | Fallback | Env var | Default | Description | |---|---|---| | FEATURE FALLBACK MODE | manual | Fallback mode: auto , manual , or off | | FALLBACK MANUAL RULES PATH | — | Path to manual fallback rules JSON | Admin & Features | Env var | Default | Description | |---|---|---| | ADMIN ENDPOINTS ENABLED | true | Enable /admin/api/v1/ REST endpoints | | ADMIN UI ENABLED | true | Enable /admin/dashboard UI | | COMBOS ENABLED | true | Enable combo model calls | | CLI TOOLS ENABLED | true | Enable CLI tools integration | | CLI TOOLS APPLY ENABLED | false | Allow admin/API to apply tool changes | | WORKFLOW REFRESH INTERVAL | 1m | Workflow refresh interval from storage | | EDITION | — | Edition identifier Enterprise use | Config file path | Env var | Default | Description | |---|---|---| | AURORA CONFIG PATH | configs/config.yaml | Override path to config YAML | Run the built binary directly from source: go build -o aurora ./apps/aurora , then ./aurora . The npm iaurora wrapper is the upstream package and isn't republished by this fork. | Command | Description | |---|---| | aurora | Start the gateway server default port 8080 | | aurora init | Scaffold config.yaml , .env , data/ in current directory | | aurora models sync | Download upstream model registry to local file | | aurora models diff | Show pricing diff between upstream and local snapshot | | aurora models show | Print effective pricing for a model after merging overrides | | aurora -version | Print version information | | aurora -help | Show all CLI options and config reference | | aurora -help-json | Dump env var schema as JSON | aurora/ ├── apps/ Application entrypoints ├── internal/ Core packages providers, gateway, storage, guardrails, etc. ├── dashboard-ui/ React admin dashboard Vite ├── configs/ Configuration profiles and examples ├── documentation/ Markdown docs Getting Started, Deployment, Session Hub, Docker ├── docs-assets/ Images, models.json, assets ├── monitoring/ Prometheus + Grafana configs ├── bench-results/ Benchmark data ├── release/ Release scripts └── scripts/ Build and utility scripts This project is licensed under the Apache 2.0 License — see the LICENSE /entitybtw/aurora/blob/main/LICENSE file for details. Community fork of Aurora https://github.com/aurorallm/aurora . Session Hub features and multi-account integration built by entitybtw https://github.com/entitybtw/aurora . The upstream project is built by the Aurora team.