Studio Environment Variables
Server
The Studio server handles the API, user authentication, assistant configuration, and conversation storage.
Core
| Environment Variable | Description | Default |
|---|
RASA_PRO_LICENSE | The Rasa Pro license key. | |
OPENAI_API_KEY | The OpenAI API key for LLM-powered features. | |
HTTP_REQUEST_TIMEOUT | The HTTP request timeout in milliseconds. Set this higher than your load balancer timeout to avoid premature connection drops. | 61000 |
Database
The database stores conversations, assistant configurations, and analytics data. Both the Studio server and the event ingestion service use this same database connection.
| Environment Variable | Description | Default |
|---|
DB_HOST | The hostname of the PostgreSQL database. | |
DB_PORT | The port of the PostgreSQL database. | 5432 |
DB_NAME | The name of the PostgreSQL database. | studio |
DB_USER | The username for the PostgreSQL database. | |
DB_PASS | The password for the PostgreSQL database. | |
DB_QUERY | Additional connection query parameters. | |
DB_TRANSACTION_TIMEOUT | The database transaction timeout in milliseconds. | 10000 |
USE_AWS_IAM_AUTH | Set to true to use AWS IAM authentication for the database instead of username/password. | false |
AWS_REGION | The AWS region for IAM authentication. Required if USE_AWS_IAM_AUTH is true. | |
IAM_DB_USER | The IAM database username. Required if USE_AWS_IAM_AUTH is true. | |
Authentication
Studio uses Keycloak for identity and access management.
| Environment Variable | Description | Default |
|---|
KEYCLOAK_REALM | The Keycloak realm name. | rasa-studio |
KEYCLOAK_CLIENT_ID | The Keycloak client ID for the Studio backend. | rasa-studio-backend |
KEYCLOAK_ADMIN_USERNAME | The Keycloak admin username. | kcadmin |
KEYCLOAK_ADMIN_PASSWORD | The Keycloak admin password. | |
KEYCLOAK_API_USERNAME | The username for Keycloak realm management API calls. | realmadmin |
KEYCLOAK_API_PASSWORD | The password for Keycloak realm management API calls. | |
KEYCLOAK_API_CLIENT_ID | The client ID for Keycloak API authentication. | admin-cli |
Model Server
| Environment Variable | Description | Default |
|---|
MS_API_URL | The URL of the Rasa model server API. | http://rasapro |
Conversation Management
| Environment Variable | Description | Default |
|---|
DELETE_CONVERSATIONS_OLDER_THAN_HOURS | Delete conversations older than this many hours. When not set, conversations are retained indefinitely. | |
DELETE_CONVERSATIONS_CRON_EXPRESSION | Cron expression controlling when the conversation deletion job runs. | 0 * * * * |
VERSION_DAILY_STATISTICS_CRON_EXPRESSION | Cron expression controlling when daily version statistics are computed. | 0 0 * * * |
Voice
| Environment Variable | Description | Default |
|---|
BROWSER_AUDIO_MONITOR_SILENCE | Set to false to disable silence detection in audio sessions. | true |
BROWSER_AUDIO_ASR | The speech-to-text (ASR) provider name. | deepgram |
BROWSER_AUDIO_TTS | The text-to-speech (TTS) provider name. | cartesia |
DEEPGRAM_API_KEY | The Deepgram API key for speech-to-text. | |
CARTESIA_API_KEY | The Cartesia API key for text-to-speech. | |
To enable voice features, you must set both DEEPGRAM_API_KEY and CARTESIA_API_KEY, even if you are only using one of the providers for both speech-to-text and text-to-speech. In such a case, set the unused provider's environment variable to a placeholder value (e.g., CARTESIA_API_KEY=unused).
Observability
| Environment Variable | Description | Default |
|---|
LOG_LEVEL_DEBUG | Set to true to enable debug-level logging. | false |
LOG_FILE | Path to a file where logs are written. When not set, logs go to stdout only. | |
Advanced
| Environment Variable | Description | Default |
|---|
TRAINING_POLLING_INTERVAL_MS | Interval in milliseconds at which Studio polls for model training status. Minimum value: 1000. | 1000 |
MODEL_POLLING_INTERVAL_MS | Interval in milliseconds at which Studio polls for model deployment status. Minimum value: 2000. | 2000 |
MODEL_INACTIVE_AFTER_MS | Time in milliseconds after which a running model version is marked as inactive. Minimum value: 60000. | 3600000 |
Event Ingestion
Studio consumes Rasa events from a Kafka topic to power analytics and conversation review. Ingested events are persisted to the same PostgreSQL database configured in the Database section above.
Kafka
| Environment Variable | Description | Default |
|---|
KAFKA_BROKER_ADDRESS | The address of the Kafka broker. | |
KAFKA_TOPIC | The Kafka topic that Rasa publishes events to. | rasa-events |
KAFKA_DLQ_TOPIC | The Kafka dead letter queue topic for events that fail processing. | rasa-events-dlq |
KAFKA_CLIENT_ID | The Kafka client identifier. | kafka-python-rasa |
KAFKA_GROUP_ID | The Kafka consumer group ID. | studio |
KAFKA_SASL_MECHANISM | The SASL mechanism for Kafka authentication (e.g. PLAIN, SCRAM-SHA-256). | |
KAFKA_SASL_USERNAME | The username for Kafka SASL authentication. | |
KAFKA_SASL_PASSWORD | The password for Kafka SASL authentication. | |
KAFKA_ENABLE_SSL | Set to true to enable SSL/TLS for Kafka connections. | false |
KAFKA_REJECT_UNAUTHORIZED | Set to false to allow untrusted SSL certificates. Not recommended for production. | true |
KAFKA_CUSTOM_SSL | Set to true to supply custom SSL certificate files via the variables below. | false |
KAFKA_CA_FILE | Path to the CA certificate file. Required when KAFKA_CUSTOM_SSL is true. | |
KAFKA_CERT_FILE | Path to the client certificate file. | |
KAFKA_KEY_FILE | Path to the client key file. | |
KAFKA_MAX_RETRIES | The maximum number of reconnection attempts before giving up. | 3 |