aurorahq/aurora

By aurorahq

Updated about 20 hours ago

Aurora OSS — open-source OpenAI-compatible AI gateway for multi-provider LLM routing

Image
Networking
API management
Machine learning & AI
1

808

aurorahq/aurora repository overview

Aurora OSS — AI Gateway

GitHub License npm Docker Pulls

Aurora OSS is an open-source, OpenAI-compatible AI gateway that routes requests across multiple LLM providers. It acts as a unified API endpoint for OpenAI, Anthropic, Gemini, Groq, xAI, Z.ai, vLLM, and custom providers — with built-in caching, guardrails, usage tracking, provider pools, and a management dashboard.


Quick Start

docker pull aurorahq/aurora:1.0.30

Run with a single provider:

docker run -d -p 8080:8080 \
  --name aurora \
  -e GROQ_API_KEY=gsk_your_key_here \
  -e AURORA_MASTER_KEY=your-admin-key \
  aurorahq/aurora:1.0.30
# Verify it works
curl http://localhost:8080/health
# → {"status":"ok"}

# List available models
curl http://localhost:8080/v1/models
# → {"object":"list","data":[{"id":"groq/llama-3.3-70b-versatile",...}]}

# Chat completion
curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{"model":"groq/llama-3.3-70b-versatile","messages":[{"role":"user","content":"Hello!"}]}'

Features

FeatureDescription
OpenAI-compatible APIDrop-in replacement — use existing OpenAI SDKs by changing base_url
Multi-provider routingRoute requests to OpenAI, Anthropic, Gemini, Groq, xAI, Z.ai, vLLM, and more
Provider poolsLoad-balance across multiple API keys with round-robin, least-loaded, or weighted strategies
Response cachingRedis or local SQLite cache to reduce costs and latency
GuardrailsContent filtering and safety checks on requests/responses
Usage trackingPer-user and per-model token counting, pricing, and billing
Admin dashboardWeb UI and REST API for managing providers, models, and usage
Prometheus metrics/metrics endpoint for monitoring with Grafana
Token optimizationToken saver reduces token usage on long conversations
WorkflowsAutomate multi-step LLM pipelines
AuthenticationAPI key-based auth, optional master key for admin
Anthropic ingressNative Anthropic API format support alongside OpenAI format

Configuration

Aurora uses a 3-layer config chain: code defaults → config.yaml → environment variables (env vars win).

Via Environment Variables

The image ships with ${VAR:-default} syntax throughout. Override any setting at runtime without rebuilding:

Core Settings
Env VariableDefaultDescription
PORT8080HTTP server port
BASE_PATH/URL path prefix for reverse proxy
AURORA_MASTER_KEY(none)Admin API key (empty = no auth)
SQLITE_PATHdata/aurora-oss.dbSQLite storage path
STORAGE_TYPEsqliteStorage backend (sqlite or redis)
LOG_FORMAT(auto)Log format: json or text
LOG_BODIESfalseLog request/response bodies
LOGGING_ENABLEDfalseEnable structured logging
Features
Env VariableDefaultDescription
METRICS_ENABLEDfalseEnable Prometheus metrics at /metrics
METRICS_ENDPOINT/metricsMetrics endpoint path
GUARDRAILS_ENABLEDfalseEnable content guardrails
USAGE_ENABLEDtrueEnable usage tracking and pricing
COMBOS_ENABLEDtrueEnable model combos/routing
TOKEN_SAVER_ENABLEDfalseEnable token optimization
ADMIN_ENDPOINTStrueEnable admin API and dashboard
MODELS_ENABLED_BY_DEFAULTtrueAuto-register provider models
EDITIONossEdition tag
Model Caching
Env VariableDefaultDescription
MODEL_LIST_URL(none)URL to fetch model list
MODEL_LIST_LOCAL_PATHdata/models.local.jsonLocal model list path
MODEL_LIST_USER_OVERRIDES_PATHdata/user_pricing.yamlUser pricing overrides
MODEL_REFRESH_INTERVAL3600Model list refresh interval (seconds)
Provider API Keys
Env VariableDescription
OPENAI_API_KEYOpenAI API key
OPENAI_BASE_URLCustom OpenAI-compatible endpoint
ANTHROPIC_API_KEYAnthropic API key
ANTHROPIC_BASE_URLCustom Anthropic endpoint
GEMINI_API_KEYGoogle Gemini API key
GROQ_API_KEYGroq API key
XAI_API_KEYxAI (Grok) API key
ZAI_API_KEYZ.ai API key
ZAI_BASE_URLCustom Z.ai endpoint
ORACLE_API_KEYOracle AI API key
ORACLE_BASE_URLOracle OpenAI-compatible endpoint
VLLM_API_KEYvLLM API key (optional)
VLLM_BASE_URLvLLM endpoint URL
Via Custom Config File

Mount your own config.yaml for full control:

docker run -d -p 8080:8080 \
  --name aurora \
  -v $(pwd)/my-config.yaml:/app/configs/config.yaml \
  -e AURORA_MASTER_KEY=your-admin-key \
  aurorahq/aurora:1.0.30

Kubernetes Deployment (Helm)

A full Helm chart is available for production deployments.

Prerequisites
  • Kubernetes cluster (minikube, EKS, AKS, GKE, etc.)
  • Helm v3+
Quick Install
# Clone or add the Helm chart
helm install aurora ./helm \
  --namespace aurora --create-namespace \
  --set image.tag=1.0.25 \
  --set providers.openai.apiKey=sk-... \
  --set providers.openai.enabled=true \
  --set redis.enabled=true
Minimal Dev Install (No Redis, No Auth)
helm install aurora ./helm \
  --namespace aurora --create-namespace \
  --set image.tag=1.0.25 \
  --set providers.groq.apiKey=gsk_... \
  --set providers.groq.enabled=true \
  --set redis.enabled=false \
  --set auth.masterKey=""
Production Install
helm upgrade --install aurora ./helm \
  --namespace aurora --create-namespace \
  --set image.tag=1.0.25 \
  --set auth.masterKey=your-secure-master-key \
  --set providers.openai.apiKey=sk-... \
  --set providers.openai.enabled=true \
  --set providers.anthropic.apiKey=sk-ant-... \
  --set providers.anthropic.enabled=true \
  --set redis.enabled=true \
  --set replicaCount=3
Custom Configuration
# Mount custom config.yaml from a file
helm upgrade aurora ./helm \
  --set-file config.content=my-custom-config.yaml

# Or use an existing ConfigMap
helm upgrade aurora ./helm \
  --set config.existingConfigMap=my-aurora-config
Key Helm Parameters
ParameterDefaultDescription
image.tag(appVersion)Docker image tag
image.pullPolicyIfNotPresentImage pull policy
replicaCount2Number of pod replicas
server.port8080Service port
server.basePath/URL path prefix
auth.masterKey""Master API key (empty = no auth)
providers.*.apiKey""Provider API keys
providers.*.enabledfalseEnable provider
providers.*.baseUrl""Custom provider URL
redis.enabledtrueDeploy Redis subchart
metrics.enabledtrueEnable Prometheus metrics
securityContext.readOnlyRootFilesystemtrueRead-only root filesystem
config.content""Custom config.yaml content
config.existingConfigMap""Existing config ConfigMap


License

Apache 2.0

Tag summary

Content type

Image

Digest

sha256:466ec5392

Size

15.4 MB

Last updated

about 20 hours ago

docker pull aurorahq/aurora