This document lists all supported environment variables for the Attendee application. Environment variables are loaded from the .env file which can be generated using python init_env.py.

Table of Contents

  1. Core Application
  2. Database
  3. Storage (AWS/Azure)
  4. Email
  5. Authentication & Security
  6. Redis & Celery
  7. API & Rate Limiting
  8. Webhooks
  9. Bot Configuration
  10. Logging
  11. Sentry (Error Tracking)

Core Application

VariableTypeDefaultDescription
DJANGO_SECRET_KEYStringRequiredDjango secret key for session and CSRF token generation. Generated by init_env.py.
CREDENTIALS_ENCRYPTION_KEYStringRequiredFernet encryption key for encrypting stored credentials. Generated by init_env.py.
TIME_ZONEStringUTCTimezone for the application (e.g., America/New_York, Europe/London).
SITE_DOMAINStringapp.attendee.devDomain name of the production site for URLs and redirects.

Database

VariableTypeDefaultDescription
DATABASE_URLStringRequiredPostgreSQL database connection URL (format: postgresql://user:password@host:port/database).
POSTGRES_SSL_REQUIREBooleantrueRequire SSL/TLS connection to PostgreSQL. Set to false for local development.
POSTGRES_HOSTStringlocalhostPostgreSQL host for development environments. Only used if not specified in DATABASE_URL.

Storage (AWS/Azure)

Storage Protocol Selection

VariableTypeDefaultDescription
STORAGE_PROTOCOLStrings3Storage backend to use: s3 (AWS S3) or azure (Azure Blob Storage).

AWS S3 Configuration

VariableTypeDefaultDescription
AWS_ACCESS_KEY_IDStringRequiredAWS IAM access key ID for S3 authentication.
AWS_SECRET_ACCESS_KEYStringRequiredAWS IAM secret access key for S3 authentication.
AWS_DEFAULT_REGIONStringus-east-1Default AWS region for S3 operations.
AWS_ENDPOINT_URLString(None)Custom S3-compatible endpoint URL (e.g., for MinIO or LocalStack).
AWS_RECORDING_STORAGE_BUCKET_NAMEStringRequiredS3 bucket name for storing meeting recordings.
AWS_AUDIO_CHUNK_STORAGE_BUCKET_NAMEString(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_STORAGEBooleanfalseUse IRSA (IAM Roles for Service Accounts) for S3 authentication in EKS. Set to true when running on Kubernetes with IRSA.

Azure Blob Storage Configuration

VariableTypeDefaultDescription
AZURE_CONNECTION_STRINGStringRequired (if using Azure)Full connection string for Azure Storage Account.
AZURE_ACCOUNT_KEYStringRequired (if using Azure)Azure Storage Account access key.
AZURE_ACCOUNT_NAMEStringRequired (if using Azure)Azure Storage Account name.
AZURE_RECORDING_STORAGE_CONTAINER_NAMEStringRequired (if using Azure)Azure Blob Container name for recordings.
AZURE_AUDIO_CHUNK_STORAGE_CONTAINER_NAMEString(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_LINKSBooleanfalseGenerate permanent links instead of expiring ones for Azure storage.
AZURE_STORAGE_LINK_EXPIRATION_SECONDSInteger1800Expiration time (in seconds) for Azure storage links. Ignored if AZURE_STORAGE_USE_PERMANENT_LINKS is true.

Audio Chunk Storage

VariableTypeDefaultDescription
USE_REMOTE_STORAGE_FOR_AUDIO_CHUNKSBooleanfalseStore audio chunks in remote storage (S3/Azure) instead of database.
FALLBACK_TO_DB_STORAGE_FOR_AUDIO_CHUNKS_IF_REMOTE_STORAGE_FAILSBooleanfalseFall back to database storage if remote storage fails (only if USE_REMOTE_STORAGE_FOR_AUDIO_CHUNKS is true).

Email

VariableTypeDefaultDescription
DISABLE_EMAILBooleanfalseDisable email sending. Set to true to use console backend for development.
EMAIL_HOSTStringsmtp.mailgun.orgSMTP server hostname.
EMAIL_HOST_USERStringRequired (if email enabled)SMTP username.
EMAIL_HOST_PASSWORDStringRequired (if email enabled)SMTP password.
DEFAULT_FROM_EMAILString[email protected]Default sender email address for transactional emails.
SERVER_EMAILString[email protected]Sender email for server error reports.
ERROR_REPORTS_RECEIVER_EMAIL_ADDRESSString(None)Email address to receive error reports. If not set, error emails are not sent.

Authentication & Security

VariableTypeDefaultDescription
DISABLE_SIGNUPBooleanfalseDisable new user sign-ups. When true, only existing users can log in.
DJANGO_SSL_REQUIREBooleantrueRequire HTTPS connections in production. Set to false for local development.

Redis & Celery

VariableTypeDefaultDescription
REDIS_URLStringRequiredRedis connection URL (format: redis://user:password@host:port/db or rediss:// for SSL).
DISABLE_REDIS_SSLBooleanfalseDisable SSL for Redis (backward compatibility). Deprecated; use REDIS_SSL_REQUIREMENTS instead.
REDIS_SSL_REQUIREMENTSString(None)Redis SSL requirements: none, optional, or required.
PROCESS_UTTERANCE_CELERY_QUEUEStringceleryCelery queue name for processing utterances.
PROCESS_ASYNC_TRANSCRIPTION_CELERY_QUEUEStringceleryCelery queue name for async transcription processing.
SYNC_CALENDAR_CELERY_QUEUEStringceleryCelery queue name for calendar synchronization.
LAUNCH_SCHEDULED_BOT_CELERY_QUEUEStringceleryCelery queue name for launching scheduled bots.
DELIVER_WEBHOOK_CELERY_QUEUEStringceleryCelery queue name for webhook delivery.
LAUNCH_BOT_METHODStringkubernetesMethod to launch bots: kubernetes or docker-compose-multi-host.
IS_A_BOT_PODBooleanfalseSet to true when running as a bot pod worker.
CONSERVE_BOT_POD_REDIS_CONNECTIONSBooleanfalseWhen true and IS_A_BOT_POD is true, reuse Redis connections to reduce connection count.
BOT_POD_CELERY_BROKER_POOL_LIMITInteger1Celery broker pool limit for bot pods. Set to 0 to create/close connections per task.

API & Rate Limiting

VariableTypeDefaultDescription
PROJECT_POST_THROTTLE_RATEString3000/minRate limit for project POST requests (format: requests/period, e.g., 100/hour).
DISABLE_RATE_LIMITINGBooleanfalseDisable API rate limiting. Set to true for testing.
MAX_METADATA_LENGTHInteger1000Maximum length (in characters) for metadata values.
REQUIRE_STRING_VALUES_IN_METADATABooleantrueRequire metadata values to be strings. If false, allows nested objects.

Webhooks

VariableTypeDefaultDescription
EXTERNAL_WEBHOOK_SITE_DOMAINString(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_WEBHOOKSBooleantrueRequire webhook URLs to use HTTPS. Set to false for local development.
MAX_WEBHOOK_DELIVERY_ATTEMPTSInteger3Maximum number of attempts to deliver a webhook before giving up.
DELIVER_WEBHOOK_TASK_MAX_RETRIESInteger(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_LIMITInteger(None)Global rate limit for webhook deliveries per second. If not set, no rate limiting is applied.
GLOBAL_WEBHOOK_RATE_LIMIT_RETRY_DELAY_SECONDSInteger3Delay (in seconds) before retrying webhook delivery when rate limit is hit.
DELIVER_WEBHOOK_VERIFY_SSLBooleantrueVerify SSL certificates when delivering webhooks. Set to false for self-signed certificates (not recommended for production).

Bot Configuration

VariableTypeDefaultDescription
BOT_POD_NAMESPACEStringattendeeKubernetes namespace for bot pods.
INTERNAL_SITE_DOMAINString(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_BOTSBooleantrueAdd 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_NAMESPACEStringattendee-webpage-streamerKubernetes namespace for webpage streamer pods.
CHARGE_CREDITS_FOR_BOTSBooleanfalseEnable credit charging for bot operations.
CUSTOM_BOT_POD_SPEC_TYPESString(Empty)Comma-separated list of custom bot pod specification types.
ENFORCE_DOMAIN_ALLOWLIST_IN_CHROMEBooleanfalseEnforce domain allowlist in Chrome web bot.
MASK_TRANSCRIPT_IN_LOGSBooleanfalseMask transcript content in application logs for privacy.

Logging

VariableTypeDefaultDescription
ATTENDEE_LOG_LEVELStringINFOApplication log level: DEBUG, INFO, WARNING, ERROR, or CRITICAL.
ATTENDEE_LOG_FORMATString(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)

VariableTypeDefaultDescription
SENTRY_DSNString(None)Sentry Data Source Name (DSN) for error tracking. Sentry is disabled if not set.
SENTRY_ENVIRONMENTStringproductionSentry environment name (e.g., development, staging, production).
SENTRY_TRACES_SAMPLE_RATEFloat0.1Sample rate for performance tracing (0.0 to 1.0, where 1.0 means 100%).
SENTRY_PROFILES_SAMPLE_RATEFloat0.1Sample rate for profiling data (0.0 to 1.0).
SENTRY_SEND_PIIBooleanfalseInclude personally identifiable information (PII) in Sentry reports. Set to true only for development.