This builds the ekai-gateway-runtime stage and runs both the Gateway API (3001) and Dashboard (3000) inside one container. Visit http://localhost:3000 to confirm the dashboard is active.
Optional: split services
Need to run the Gateway and Dashboard as separate containers (e.g., for independent scaling or debugging)?
The split profile starts the gateway and dashboard services defined in docker-compose.yaml.
Environment Variables
Variable
Description
OPENAI_API_KEY
Key for OpenAI models
ANTHROPIC_API_KEY
Key for Anthropic models
XAI_API_KEY
Key for xAI Grok models
OPENROUTER_API_KEY
Key for OpenRouter models
GOOGLE_API_KEY
Key for Google Gemini models
PORT_GATEWAY
Port for Gateway API (default 3001)
PORT_DASHBOARD
Port for Dashboard UI (default 3000)
DATABASE_PATH
SQLite file path (default data/usage.db)
Running the Gateway and Dashboard
When you start the services:
The Gateway listens for OpenAI and Anthropic API calls on http://localhost:3001.
The Dashboard runs at http://localhost:3000 and automatically reads usage data.
A new SQLite database file is created the first time you send a request.
Using with Clients (Summary)
Claude Code
Set ANTHROPIC_BASE_URL=http://localhost:3001
Pick a model (e.g., claude-sonnet-4-20250514, grok-code-fast-1)