Environment Variables
Attendee uses environment variables for configuration. These can be set in a.env file or passed directly to the Docker container.
Required Variables
Database Configuration
Redis Configuration
AWS Storage Configuration
Ensure your S3 bucket has appropriate CORS configuration for serving media files.
Alternative Storage: Azure Blob Storage
Attendee also supports Azure Blob Storage:Django Settings
Settings Module
Django Secret Key
Allowed Hosts
Chrome & Browser Configuration
Chrome Sandbox
Disabling the Chrome sandbox reduces security but is sometimes necessary in containerized environments.
Service-Specific Variables
Celery Worker Configuration
For the Celery worker service:PulseAudio Configuration
For audio processing:Optional Variables
Email Configuration
For sending confirmation emails and notifications:Webhook Configuration
Logging Configuration
Docker Compose Configuration
Development Compose File
Thedev.docker-compose.yaml file defines the development environment:
Service Architecture
Attendee consists of multiple services:Web Application
Django web server handling API requests and serving the UI.
- Port: 8000 (default)
- Command:
python manage.py runserver 0.0.0.0:8000
Celery Worker
Background worker processing bot operations and transcriptions.
- Command:
celery -A attendee worker -l INFO - Handles bot lifecycle, media processing, and API integrations
Scheduler
Task scheduler for scheduled meetings and maintenance tasks.
- Command:
python manage.py run_scheduler - Manages scheduled bot joins and cleanup tasks
Dependencies
Attendee has several key Python dependencies:Core Framework
- Django 5.1.14 - Web framework
- Django REST Framework 3.15.2 - API framework
- Celery 5.4.0 - Distributed task queue
- Gunicorn 23.0.0 - WSGI HTTP server
Meeting Platform SDKs
- zoom-meeting-sdk 0.0.24 - Zoom integration
- selenium 4.27.1 - Browser automation for Google Meet/Teams
- aiortc 1.10.1 - WebRTC for media streams
Storage & Database
- psycopg2 2.9.10 - PostgreSQL adapter
- redis 5.2.0 - Redis client
- boto3 1.35.64 - AWS SDK
- azure-storage-blob 12.26.0 - Azure Blob Storage
Media Processing
- opencv-python 4.10.0.84 - Video processing
- pydub 0.25.1 - Audio manipulation
- deepgram-sdk 4.3.0 - Transcription
- google-cloud-texttospeech 2.24.0 - Text-to-speech
Browser Automation
- google-chrome-stable 134.0.6998.88 - Chrome browser
- chromedriver 134.0.6998.88 - Chrome WebDriver
The Dockerfile pins specific versions of Chrome and ChromeDriver to ensure compatibility.
Chrome Policies
Attendee dynamically configures Chrome policies for meeting bots:/tmp/attendee-chrome-policies.json to allow dynamic updates by the non-root user.
Static Files
Django static files are collected at startup:app user.
Security Considerations
- Use Strong Passwords: Generate cryptographically secure passwords for databases and secret keys
- Enable HTTPS: Always use TLS/SSL in production
- Restrict ALLOWED_HOSTS: Only include your actual domain names
- Secure Secrets: Never commit
.envfiles or credentials to version control - Update Dependencies: Regularly update Docker images and Python packages
- Network Security: Use firewalls and security groups to restrict access
- Chrome Sandbox: Enable the Chrome sandbox in production when possible
Next Steps
Setup
Back to initial setup and prerequisites
Deployment
Deploy Attendee to production environments