Reference
Environment variables
The ~30 env vars you actually have to set. Grouped by concern. Full list lives in clairvoyance/.env.example.
Breeze Buddy reads configuration from ~198 environment variables. Most have working defaults; this page lists the subset you must set for a deployment, and the ones you probably want to tune early. The authoritative list lives in clairvoyance/.env.example.
Server
| Var | Default | Purpose |
|---|---|---|
PORT | 8000 | HTTP port the FastAPI app binds to. |
HOST | 0.0.0.0 | Bind address. Leave as 0.0.0.0 in containers. |
ENVIRONMENT | dev | dev enables coloured logs; production emits JSON logs. |
PROD_LOG_LEVEL | DEBUG | Log level when ENVIRONMENT=production. Set to INFO at scale. |
ENABLE_SIGTERM_HANDLER | — | Graceful drain on container stop. Enable in production. |
Database
| Var | Required | Purpose |
|---|---|---|
POSTGRES_HOST | yes | Host for the application DB. |
POSTGRES_PORT | yes | Typically 5432. |
POSTGRES_USER | yes | DB user. |
POSTGRES_PASSWORD | yes | DB password. |
POSTGRES_DB | yes | Database name. |
Redis
Redis is used for feature-flag cache, IVR config, distributed locks, and rate limiting.
| Var | Required | Purpose |
|---|---|---|
REDIS_HOST | yes | Host. |
REDIS_PORT | yes | Typically 6379. |
REDIS_PASSWORD | no | Set if your Redis requires auth. |
LLM, STT, TTS
| Var | Purpose |
|---|---|
AZURE_OPENAI_API_KEY | Azure OpenAI credential for the LLM. |
AZURE_OPENAI_ENDPOINT | Azure OpenAI endpoint URL. |
AZURE_OPENAI_MODEL | Model name, e.g. gpt-4o-automatic. |
DEEPGRAM_API_KEY | STT provider. |
SONIOX_API_KEY | Alternate STT. |
SARVAM_API_KEY | Indian-language STT/TTS. |
ELEVENLABS_API_KEY | TTS default. |
ELEVENLABS_VOICE_ID | Default voice. |
CARTESIA_API_KEY | Low-latency TTS. |
GOOGLE_CREDENTIALS_JSON | Optional multilingual TTS. |
See STT and TTS for provider selection rules.
Telephony
| Var | Purpose |
|---|---|
TWILIO_ACCOUNT_SID / TWILIO_AUTH_TOKEN | Twilio credentials. |
PLIVO_AUTH_ID / PLIVO_AUTH_TOKEN | Plivo credentials. |
EXOTEL_SID / EXOTEL_TOKEN | Exotel credentials. |
Daily / WebRTC
| Var | Purpose |
|---|---|
DAILY_API_KEY | Daily.co credential. |
DAILY_API_URL | Daily API base URL, default https://api.daily.co/v1. |
BREEZE_BUDDY_DAILY_API_KEY | Optional override; falls back to DAILY_API_KEY. |
Pools and capacity
See Pools for context.
| Var | Default |
|---|---|
VOICE_AGENT_POOL_SIZE | 3 |
VOICE_AGENT_MAX_POOL_SIZE | 3 |
DAILY_ROOM_POOL_SIZE | 5 |
DAILY_ROOM_MAX_POOL_SIZE | 5 |
Rate limiting
| Var | Default |
|---|---|
OUTBOUND_RATE_LIMIT_MAX_CALLS | 7 |
OUTBOUND_RATE_LIMIT_WINDOW_SECONDS | 3600 |
OUTBOUND_RATE_LIMIT_BLOCK_ENABLED | false |
Observability
| Var | Purpose |
|---|---|
LANGFUSE_SECRET_KEY | Langfuse write credential. |
LANGFUSE_PUBLIC_KEY | Langfuse public key. |
LANGFUSE_BASEURL | Langfuse base URL. |
LANGFUSE_EVALUATORS | Comma-separated evaluator names monitored by the auto-eval loop. |
ENABLE_SCORE_MONITORING_LOOP | true / false — start the background loop. |
SCORE_CHECK_INTERVAL_SECONDS | 600 — seconds between polls. |
SLACK_WEBHOOK_URL | Incoming webhook for alerts. |
SLACK_ALERTS_ENABLED | Master switch for Slack alerts. |
ENABLE_TRACING | true / false — emit OpenTelemetry traces. |
See Langfuse auto-evaluation and Observability overview.
Secrets and KMS
| Var | Purpose |
|---|---|
AWS_REGION | AWS region for KMS. |
AWS_ACCESS_KEY_ID | AWS creds. |
AWS_SECRET_ACCESS_KEY | AWS creds. |
SKIP_KMS_DECRYPT | true only for local dev. See KMS and secrets. |
JWT_SECRET_KEY | Signing key for access tokens. |
Storage
| Var | Purpose |
|---|---|
UPLOAD_BREEZE_BUDDY_CALL_RECORDINGS_TO_CLOUD | true / false — upload recordings to GCS/S3. |
AWS_S3_BUCKET | S3 bucket for recordings, if using S3. |
GCS_CREDENTIALS_JSON | GCS creds, if using GCS. |
GCS_BUCKET | GCS bucket. |
Feature flags
| Var | Purpose |
|---|---|
DEVCYCLE_SERVER_KEY | DevCycle SDK key. See Feature flags. |
DEVCYCLE_WEBHOOK_SECRET | Shared secret validating DevCycle → Breeze Buddy webhook calls. |
Don't commit secrets
Every var in the “Secrets and KMS” and “LLM/STT/TTS” groups is a credential. Use a secrets manager in production; .env files are for local dev only.
Next steps
Was this helpful?