Skip to main content
Version: 0.9.13

Environment variable index

A consolidated catalogue of environment variables consumed by Delphi services. Each row carries a source badge (where the value comes from) and an optional scope badge.

Source legend
  • env — set in .env files or compose; the canonical local override.
  • SSM — AWS SSM Parameter Store; expanded into env at boot.
  • Secrets Manager — AWS Secrets Manager; expanded into env or files at boot.
  • Code default — value baked in code if nothing overrides it.
  • TelWeb · Team / TelWeb · Admin / TelWeb · Platform — DB-backed setting changed via TelWeb UI.
  • DB rowPlatformSetting or domain table (not exposed in TelWeb UI).
  • Redis (runtime) — ephemeral runtime cache.

Voice and SIP

NameSourceScopeDefaultDescription
JANUS_WS_PORTenvall8188 (local) / 443 (prod)Janus WebSocket port; required for WebRTC bridging.
TELPHI_MEDIA_HOSTenvallhost.docker.internal / TelPhi private IPTelSys → TelPhi media plane host.
TELPHI_MEDIA_PORTenvall12001TelSys → TelPhi media plane port.
TELPHI_MEDIA_SCHEMEenvallwsScheme for TelPhi media WebSocket.
TELPHI_MEDIA_PATHenvall/mediaPath for TelPhi media WebSocket.
RTPENGINE_HOSTenvall10.30.0.10 (local)RTPEngine control endpoint.
RTPENGINE_NG_PORTenvall22222RTPEngine ng control port.
KAMAILIO_SIP_DOMAINSSMprodPublic SIP domain Kamailio serves.
REFER_TARGET_HOSTenvallKamailio REFER_SBC_HOST (TelPro). Defaults to DOMAIN_TELPRO. Align with TelPhi transfer REFER configuration.
COTURN_SHARED_SECRETSecrets ManagerprodShared secret for TURN credentials.
SIP_100REL_MODEenvalloffTelSys PJSIP 100rel mode: off (default) | peer_supported | yes | required — PRACK / reliable provisional responses toward TelPro. Synonyms accepted (e.g. no→off, on→yes). See Voice operations.
SIP_CAPTURE_ENABLE_PJSIP_LOGGERenvall1Enables detailed TelSys PJSIP SIP message logging for SIP ladder and log-to-span diagnostics.

Database and Redis

NameSourceScopeDefaultDescription
DATABASE_URLSecrets ManagerallPostgres connection string. Keep `ssl*` query params out of the URL; TLS policy comes from `DATABASE_SSL_MODE` and the CA file (see [Internal encryption](/platform/security/internal-encryption)).
DATABASE_SSL_MODESSMalldisable (local)Client SSL policy: `disable` | `require` | `verify-ca` | `verify-full`.
DATABASE_SSL_CA_BUNDLE_B64Secrets ManagerprodBase64 PEM CA bundle for Postgres TLS verification; decoded to `./tls/database-ca.crt` and mounted at `/etc/ssl/database/ca.crt`. Use the CA that signs PgBouncer’s cert (or the RDS/Aurora global CA when connecting straight to AWS).
DATABASE_SSL_CA_FILEenvall/etc/ssl/database/ca.crtIn-container path to the decoded Postgres CA bundle.
MIGRATION_DATABASE_URLSecrets ManagerprodPrivileged direct Postgres connection used only by the one-shot voiceai-db-migrate container.
DATABASE_SECRET_ARNenvprodOptional AWS Secrets Manager secret ARN for runtime database credential refresh.
DATABASE_SECRET_REGIONenvprodAWS_REGIONAWS region for DATABASE_SECRET_ARN when it differs from the deployment region.
REDIS_URLSecrets ManagerallRedis connection string; rediss:// when TLS is enabled.
REDIS_TLS_CA_BUNDLE_B64Secrets ManagerprodBase64 PEM CA bundle for Redis TLS; decoded to `./tls/redis-ca.crt` and mounted at `/etc/ssl/redis/ca.crt`. Often empty when relying on the system trust store (e.g. ElastiCache).
REDIS_TLS_CA_FILEenvall/etc/ssl/redis/ca.crtIn-container path to the decoded Redis CA bundle.

AWS and infrastructure

NameSourceScopeDefaultDescription
AWS_REGIONenvalleu-central-1AWS region for SSM / Secrets Manager / S3 calls.
HTTP_PROXYenvprodForward proxy for outbound HTTP, including AWS and LLM provider paths.
HTTPS_PROXYenvprodForward proxy for outbound HTTPS.
NO_PROXYenvprodHosts to bypass the proxy.
SSM_PARAM_PREFIXenvall/delphi/<env>/Prefix under which Delphi SSM params live.
S3_CONFIG_BUCKETenvprodS3 bucket where the deployment config bundles live; consumed by fetch-config on every host.

Observability

NameSourceScopeDefaultDescription
OTEL_EXPORTER_OTLP_ENDPOINTenvall10.0.1.10:4317 (prod)OTLP collector endpoint.
OTEL_SERVICE_NAMEenvallService identifier in spans / logs.
SIGNOZ_URLenvallhttps://signoz.<env>.delphi/URL TelWeb queries for the Debug tab.
SIGNOZ_API_TOKENSecrets ManagerprodAPI token for SigNoz Logs / Traces queries.
SIGNOZ_OTLP_ENDPOINTenvdevOptional OTLP endpoint override for local or tunneled SigNoz collection.
ENABLE_PII_LOGGINGenvallfalseWhen not true, enables PII redaction: OTel collector transform/pii (and transform/pii_traces on Voice) scrubs logs/traces before SigNoz export; TelPhi redacts transcript + caller number on DB persist; TelAPI redacts browser-action transcripts. SIP ladder logs (event=sip_message) stay unmasked. Production: keep false except short support sessions. Staging/dev: may set true for debugging. See Monitoring in SigNoz — PII redaction.
MSISDN_UNMASKED_DIGITSenvall4Trailing phone-number digits kept when masking MSISDNs in collector logs/traces, TelPhi DB writes, and callerNumber attributes (for example ***3456). Must match on voiceai-telphi, telapi, and voiceai-otel-collector on each host.

Feature flags

NameSourceScopeDefaultDescription
FEATURE_AI_FLOW_BUILDERenvalltrueAI Flow Builder UI + runtime.
FEATURE_QA_SCORINGenvalltrueQA scoring jobs and tab.
FEATURE_AUDIO_PREPROCESSINGenvalltrueAudioProc container in the voice stack.
FEATURE_TTS_MEDIA_CACHEenvalltrueTTS cache lookups and writes.
FEATURE_REGISTRATIONenvallfalsePublic registration flow.
FEATURE_SUBSCRIPTIONSenvallfalseSubscription / billing guards.
FEATURE_SMSenvallfalseSMS dispatch (Vonage).
FEATURE_WEBRTCenvalltrueJanus + TURN WebRTC stack. When false, browser SDK session/runtime/endpoint TelAPI surfaces are not registered.
FEATURE_API_ACCESSenvalltrueExternal API key access.
FEATURE_ADDITIONAL_PROVIDERSenvalltrueNon-default AI providers (Azure, Pythia, TOBi).
FEATURE_SUBSCRIPTION_MANAGEMENTenvallfalseSelf-service subscription UI.
FEATURE_ALGOLIA_ASK_AIenvallfalseOptional TelWeb Ask AI docs assistant.

TelWeb public UI

NameSourceScopeDefaultDescription
LEGAL_BANNER_HTMLenvallTrusted operator-provided HTML shown as a legal notice on unauthenticated/public TelWeb pages. Takes precedence over LEGAL_BANNER_TEXT.
LEGAL_BANNER_TEXTenvallPlain-text legal notice shown on unauthenticated/public TelWeb pages when LEGAL_BANNER_HTML is unset.

Sessions and passwords

NameSourceScopeDefaultDescription
SESSION_TIMEOUTenvall1800000Main session timeout used for server cookies and client idle logout.
MAX_CONCURRENT_SESSIONSenvall2 in prod; unlimited outside prodMaximum active sessions allowed for one user. Positive integers set a cap; 0 or negative disables the cap. Verify the Web bundle exposes this var before overriding.
SESSION_HEARTBEAT_TTLenvallSESSION_TIMEOUTTTL in milliseconds for session heartbeat records used by concurrent-session enforcement. Must stay between 60000 and SESSION_TIMEOUT.
LOGIN_MAX_ATTEMPTS_CREDENTIALSenvall5Failed credentials-login attempts before an account is locked. Set to 3 to enforce a three-attempt policy; verify the Web bundle exposes this var before overriding.
LOGIN_LOCKOUT_MINUTES_CREDENTIALSenvall30Credentials-login counting window and displayed lockout duration. Locked accounts stay locked until reset-password unlocks them.
LOGIN_MAX_ATTEMPTS_AZURE_ADenvall10Failed Microsoft Entra ID attempts before an account is locked when that provider is enabled.
LOGIN_LOCKOUT_MINUTES_AZURE_ADenvall60Microsoft Entra ID lockout window reported to users and audit events.
PASSWORD_MAX_AGE_DAYSenvall90Password age after which users must change their password. Set on TelWeb and Tasker (must match).
PASSWORD_WARNING_DAYSenvall10Days before password expiry when users see warnings and Tasker sends reminder emails. Set on TelWeb and Tasker (must match).

Billing

NameSourceScopeDefaultDescription
STRIPE_SECRET_KEYSecrets ManagerprodStripe API key for checkout / subscriptions.
STRIPE_WEBHOOK_SECRETSecrets ManagerprodVerifies inbound Stripe webhook signatures.
BILLING_DEFAULT_PLANTelWeb · PlatformallDefault plan assigned on registration; mutable in TelWeb.

Removed or deprecated (v0.9.13-patch3)

VariableRemoved fromReplacement
RATE_LIMIT_MAXTelAPIAdmin Settings → API Server Config → API Rate Limit Max
RATE_LIMIT_WINDOW_MSTelAPIAdmin Settings → API Server Config → API Rate Limit Window (ms)

TelAPI also dropped the rateLimitPerApiKey database flag — limits are always per client IP by route tier.

See also