.env file which can be generated using python init_env.py.
Table of Contents
- Core Application
- Database
- Storage (AWS/Azure)
- Authentication & Security
- Redis & Celery
- API & Rate Limiting
- Webhooks
- Bot Configuration
- Logging
- Sentry (Error Tracking)
Core Application
| Variable | Type | Default | Description |
|---|---|---|---|
DJANGO_SECRET_KEY | String | Required | Django secret key for session and CSRF token generation. Generated by init_env.py. |
CREDENTIALS_ENCRYPTION_KEY | String | Required | Fernet encryption key for encrypting stored credentials. Generated by init_env.py. |
TIME_ZONE | String | UTC | Timezone for the application (e.g., America/New_York, Europe/London). |
SITE_DOMAIN | String | app.attendee.dev | Domain name of the production site for URLs and redirects. |
Database
| Variable | Type | Default | Description |
|---|---|---|---|
DATABASE_URL | String | Required | PostgreSQL database connection URL (format: postgresql://user:password@host:port/database). |
POSTGRES_SSL_REQUIRE | Boolean | true | Require SSL/TLS connection to PostgreSQL. Set to false for local development. |
POSTGRES_HOST | String | localhost | PostgreSQL host for development environments. Only used if not specified in DATABASE_URL. |
Storage (AWS/Azure)
Storage Protocol Selection
| Variable | Type | Default | Description |
|---|---|---|---|
STORAGE_PROTOCOL | String | s3 | Storage backend to use: s3 (AWS S3) or azure (Azure Blob Storage). |
AWS S3 Configuration
| Variable | Type | Default | Description |
|---|---|---|---|
AWS_ACCESS_KEY_ID | String | Required | AWS IAM access key ID for S3 authentication. |
AWS_SECRET_ACCESS_KEY | String | Required | AWS IAM secret access key for S3 authentication. |
AWS_DEFAULT_REGION | String | us-east-1 | Default AWS region for S3 operations. |
AWS_ENDPOINT_URL | String | (None) | Custom S3-compatible endpoint URL (e.g., for MinIO or LocalStack). |
AWS_RECORDING_STORAGE_BUCKET_NAME | String | Required | S3 bucket name for storing meeting recordings. |
AWS_AUDIO_CHUNK_STORAGE_BUCKET_NAME | String | (Uses recording bucket) | S3 bucket name for storing audio chunks. Falls back to AWS_RECORDING_STORAGE_BUCKET_NAME if not set. |
USE_IRSA_FOR_S3_STORAGE | Boolean | false | Use IRSA (IAM Roles for Service Accounts) for S3 authentication in EKS. Set to true when running on Kubernetes with IRSA. |
Azure Blob Storage Configuration
| Variable | Type | Default | Description |
|---|---|---|---|
AZURE_CONNECTION_STRING | String | Required (if using Azure) | Full connection string for Azure Storage Account. |
AZURE_ACCOUNT_KEY | String | Required (if using Azure) | Azure Storage Account access key. |
AZURE_ACCOUNT_NAME | String | Required (if using Azure) | Azure Storage Account name. |
AZURE_RECORDING_STORAGE_CONTAINER_NAME | String | Required (if using Azure) | Azure Blob Container name for recordings. |
AZURE_AUDIO_CHUNK_STORAGE_CONTAINER_NAME | String | (Uses recording container) | Azure Blob Container name for audio chunks. Falls back to AZURE_RECORDING_STORAGE_CONTAINER_NAME if not set. |
AZURE_STORAGE_USE_PERMANENT_LINKS | Boolean | false | Generate permanent links instead of expiring ones for Azure storage. |
AZURE_STORAGE_LINK_EXPIRATION_SECONDS | Integer | 1800 | Expiration time (in seconds) for Azure storage links. Ignored if AZURE_STORAGE_USE_PERMANENT_LINKS is true. |
Audio Chunk Storage
| Variable | Type | Default | Description |
|---|---|---|---|
USE_REMOTE_STORAGE_FOR_AUDIO_CHUNKS | Boolean | false | Store audio chunks in remote storage (S3/Azure) instead of database. |
FALLBACK_TO_DB_STORAGE_FOR_AUDIO_CHUNKS_IF_REMOTE_STORAGE_FAILS | Boolean | false | Fall back to database storage if remote storage fails (only if USE_REMOTE_STORAGE_FOR_AUDIO_CHUNKS is true). |
| Variable | Type | Default | Description |
|---|---|---|---|
DISABLE_EMAIL | Boolean | false | Disable email sending. Set to true to use console backend for development. |
EMAIL_HOST | String | smtp.mailgun.org | SMTP server hostname. |
EMAIL_HOST_USER | String | Required (if email enabled) | SMTP username. |
EMAIL_HOST_PASSWORD | String | Required (if email enabled) | SMTP password. |
DEFAULT_FROM_EMAIL | String | [email protected] | Default sender email address for transactional emails. |
SERVER_EMAIL | String | [email protected] | Sender email for server error reports. |
ERROR_REPORTS_RECEIVER_EMAIL_ADDRESS | String | (None) | Email address to receive error reports. If not set, error emails are not sent. |
Authentication & Security
| Variable | Type | Default | Description |
|---|---|---|---|
DISABLE_SIGNUP | Boolean | false | Disable new user sign-ups. When true, only existing users can log in. |
DJANGO_SSL_REQUIRE | Boolean | true | Require HTTPS connections in production. Set to false for local development. |
Redis & Celery
| Variable | Type | Default | Description |
|---|---|---|---|
REDIS_URL | String | Required | Redis connection URL (format: redis://user:password@host:port/db or rediss:// for SSL). |
DISABLE_REDIS_SSL | Boolean | false | Disable SSL for Redis (backward compatibility). Deprecated; use REDIS_SSL_REQUIREMENTS instead. |
REDIS_SSL_REQUIREMENTS | String | (None) | Redis SSL requirements: none, optional, or required. |
PROCESS_UTTERANCE_CELERY_QUEUE | String | celery | Celery queue name for processing utterances. |
PROCESS_ASYNC_TRANSCRIPTION_CELERY_QUEUE | String | celery | Celery queue name for async transcription processing. |
SYNC_CALENDAR_CELERY_QUEUE | String | celery | Celery queue name for calendar synchronization. |
LAUNCH_SCHEDULED_BOT_CELERY_QUEUE | String | celery | Celery queue name for launching scheduled bots. |
DELIVER_WEBHOOK_CELERY_QUEUE | String | celery | Celery queue name for webhook delivery. |
LAUNCH_BOT_METHOD | String | kubernetes | Method to launch bots: kubernetes or docker-compose-multi-host. |
IS_A_BOT_POD | Boolean | false | Set to true when running as a bot pod worker. |
CONSERVE_BOT_POD_REDIS_CONNECTIONS | Boolean | false | When true and IS_A_BOT_POD is true, reuse Redis connections to reduce connection count. |
BOT_POD_CELERY_BROKER_POOL_LIMIT | Integer | 1 | Celery broker pool limit for bot pods. Set to 0 to create/close connections per task. |
API & Rate Limiting
| Variable | Type | Default | Description |
|---|---|---|---|
PROJECT_POST_THROTTLE_RATE | String | 3000/min | Rate limit for project POST requests (format: requests/period, e.g., 100/hour). |
DISABLE_RATE_LIMITING | Boolean | false | Disable API rate limiting. Set to true for testing. |
MAX_METADATA_LENGTH | Integer | 1000 | Maximum length (in characters) for metadata values. |
REQUIRE_STRING_VALUES_IN_METADATA | Boolean | true | Require metadata values to be strings. If false, allows nested objects. |
Webhooks
| Variable | Type | Default | Description |
|---|---|---|---|
EXTERNAL_WEBHOOK_SITE_DOMAIN | String | (Uses SITE_DOMAIN) | Public domain used for externally-facing URLs that outside services must reach, such as webhook addresses registered with external providers (Microsoft/Google) and dashboard links shown to users. Overrides SITE_DOMAIN when set. Uses HTTPS (HTTP only for localhost). |
REQUIRE_HTTPS_WEBHOOKS | Boolean | true | Require webhook URLs to use HTTPS. Set to false for local development. |
MAX_WEBHOOK_DELIVERY_ATTEMPTS | Integer | 3 | Maximum number of attempts to deliver a webhook before giving up. |
DELIVER_WEBHOOK_TASK_MAX_RETRIES | Integer | (Uses MAX_WEBHOOK_DELIVERY_ATTEMPTS) | Maximum number of times the webhook delivery task can be retried. Can differ from MAX_WEBHOOK_DELIVERY_ATTEMPTS for rate limiting or other retry scenarios. |
GLOBAL_WEBHOOK_DELIVERIES_PER_SECOND_RATE_LIMIT | Integer | (None) | Global rate limit for webhook deliveries per second. If not set, no rate limiting is applied. |
GLOBAL_WEBHOOK_RATE_LIMIT_RETRY_DELAY_SECONDS | Integer | 3 | Delay (in seconds) before retrying webhook delivery when rate limit is hit. |
DELIVER_WEBHOOK_VERIFY_SSL | Boolean | true | Verify SSL certificates when delivering webhooks. Set to false for self-signed certificates (not recommended for production). |
Bot Configuration
| Variable | Type | Default | Description |
|---|---|---|---|
BOT_POD_NAMESPACE | String | attendee | Kubernetes namespace for bot pods. |
INTERNAL_SITE_DOMAIN | String | (None) | Internal host (and optional port) that bot pods use for callbacks to the app, e.g. attendee-app.<namespace>.svc.cluster.local:8000. When set, in-cluster bot callbacks target it over HTTP, bypassing the public ingress (useful when bot pods are restricted by a NetworkPolicy). When unset, callbacks fall back to EXTERNAL_WEBHOOK_SITE_DOMAIN / SITE_DOMAIN. |
USE_SECURE_COOKIE_FOR_SIGNED_IN_GOOGLE_MEET_BOTS | Boolean | true | Add the Secure flag to the Google Meet SSO sign-in session cookie. Set to false when the Google Meet sign-in flow navigates over an HTTP url. |
WEBPAGE_STREAMER_POD_NAMESPACE | String | attendee-webpage-streamer | Kubernetes namespace for webpage streamer pods. |
CHARGE_CREDITS_FOR_BOTS | Boolean | false | Enable credit charging for bot operations. |
CUSTOM_BOT_POD_SPEC_TYPES | String | (Empty) | Comma-separated list of custom bot pod specification types. |
ENFORCE_DOMAIN_ALLOWLIST_IN_CHROME | Boolean | false | Enforce domain allowlist in Chrome web bot. |
MASK_TRANSCRIPT_IN_LOGS | Boolean | false | Mask transcript content in application logs for privacy. |
Logging
| Variable | Type | Default | Description |
|---|---|---|---|
ATTENDEE_LOG_LEVEL | String | INFO | Application log level: DEBUG, INFO, WARNING, ERROR, or CRITICAL. |
ATTENDEE_LOG_FORMAT | String | (None) | Log format type: use json for JSON structured logs or leave empty for plain text. When None, default formatter is used. |
Sentry (Error Tracking)
| Variable | Type | Default | Description |
|---|---|---|---|
SENTRY_DSN | String | (None) | Sentry Data Source Name (DSN) for error tracking. Sentry is disabled if not set. |
SENTRY_ENVIRONMENT | String | production | Sentry environment name (e.g., development, staging, production). |
SENTRY_TRACES_SAMPLE_RATE | Float | 0.1 | Sample rate for performance tracing (0.0 to 1.0, where 1.0 means 100%). |
SENTRY_PROFILES_SAMPLE_RATE | Float | 0.1 | Sample rate for profiling data (0.0 to 1.0). |
SENTRY_SEND_PII | Boolean | false | Include personally identifiable information (PII) in Sentry reports. Set to true only for development. |