API Server
| Variable | Default | Description |
|---|
| DIRECTAI_HOST | 0.0.0.0 | Bind address |
| DIRECTAI_PORT | 8000 | Bind port |
| DIRECTAI_LOG_LEVEL | info | Log level (debug/info/warning/error) |
| DIRECTAI_MODEL_CONFIG_DIR | /app/models | Path to ModelDeployment YAML directory |
| DIRECTAI_API_KEYS | (empty) | Comma-separated API keys. Empty = auth disabled (local dev only) |
| DIRECTAI_BACKEND_TIMEOUT | 300 | Backend request timeout in seconds |
| DIRECTAI_BACKEND_CONNECT_TIMEOUT | 5 | Backend connect-phase timeout in seconds |
| DIRECTAI_DATABASE_URL | (empty) | PostgreSQL connection string for key validation + usage metering |
| DIRECTAI_KEY_CACHE_TTL | 60 | API key in-memory cache TTL in seconds |
| DIRECTAI_DATABASE_PATH | (empty) | SQLite path for model lifecycle state |
Provider Keys (Passthrough)
Set upstream API keys for frontier model passthrough. Prefix: DIRECTAI_PROVIDER_KEY_
| Variable | Default | Description |
|---|
| DIRECTAI_PROVIDER_KEY_OPENAI_API_KEY | (empty) | OpenAI API key for GPT-4o, o3, etc. |
| DIRECTAI_PROVIDER_KEY_ANTHROPIC_API_KEY | (empty) | Anthropic API key for Claude models |
| DIRECTAI_PROVIDER_KEY_GOOGLE_API_KEY | (empty) | Google AI API key for Gemini models |
| DIRECTAI_PROVIDER_KEY_AZURE_OPENAI_API_KEY | (empty) | Azure OpenAI API key |
Users can also store per-user provider keys in the dashboard. Per-user keys (encrypted with AES-256-GCM) take priority over environment variables.
Rate Limiting
| Variable | Default | Description |
|---|
| DIRECTAI_RATE_LIMIT_RPS | 60 | Per-key rate limit (requests/second) |
| DIRECTAI_RATE_LIMIT_BURST | 120 | Token-bucket burst capacity |
Billing (Stripe)
| Variable | Default | Description |
|---|
| DIRECTAI_STRIPE_SECRET_KEY | (empty) | Stripe API secret key. Empty = dry-run mode |
| DIRECTAI_USAGE_REPORT_INTERVAL | 60 | Seconds between Stripe Meter flush cycles |
| DIRECTAI_STRIPE_METER_CHAT_INPUT | chat_input_tokens | Stripe Meter event name for chat input tokens |
| DIRECTAI_STRIPE_METER_CHAT_OUTPUT | chat_output_tokens | Stripe Meter event name for chat output tokens |
| DIRECTAI_STRIPE_METER_EMBEDDING | embedding_tokens | Stripe Meter event name for embedding tokens |
| DIRECTAI_STRIPE_METER_TRANSCRIPTION | transcription_seconds | Stripe Meter event name for transcription |
Observability
| Variable | Default | Description |
|---|
| DIRECTAI_OTEL_ENABLED | true | Enable OpenTelemetry distributed tracing |
| DIRECTAI_APPINSIGHTS_CONNECTION_STRING | (empty) | Azure Application Insights connection string |
| DIRECTAI_OTLP_ENDPOINT | (empty) | OTLP gRPC endpoint for trace export |
| DIRECTAI_OTEL_SAMPLE_RATE | 1.0 | Trace sampling rate (0.0–1.0) |