Environment Variables
CVAT uses environment variables to configure various aspects of the application. These can be set in a.env file or directly in your docker-compose.override.yml.
Core Settings
Host and URL Configuration
CVAT_HOST: The hostname where CVAT will be accessible (default:localhost)CVAT_BASE_URL: Full base URL for CVAT (default:http://{CVAT_HOST}:8080)CVAT_VERSION: Docker image version to use (default:dev)
Database Configuration
cvat/settings/base.py:711 for the password file implementation.
Redis Configuration
CVAT uses two Redis instances: In-Memory Redis (session data, caching)ClickHouse (Analytics Database)
docker-compose.yml:31-36 and cvat/settings/base.py:701-709 for ClickHouse configuration.
Django Settings
Security
DJANGO_SECRET_KEY: Secret key for Django (auto-generated if not set)ALLOWED_HOSTS: Comma-separated list of allowed hostnames (default:localhost,127.0.0.1)
cvat/settings/base.py:36-38 for ALLOWED_HOSTS configuration.
Logging
cvat/settings/base.py:481-553 for logging configuration.
Application Settings
Analytics
cvat/settings/base.py:177-180.
Worker Configuration
docker-compose.yml:98 for the server and various worker containers.
Feature Flags
docker-compose.yml:97-101 and cvat/settings/base.py:756 for feature flag configurations.
File Processing
CVAT_CONCURRENT_CHUNK_PROCESSING: Number of chunks processed simultaneously (default:1)CVAT_LOG_IMPORT_ERRORS: Log import errors to file (default:false)
cvat/settings/base.py:549 and cvat/settings/base.py:759.
Health Checks
cvat/settings/base.py:788.
Serverless Functions (Nuclio)
cvat/settings/base.py:345-357 for Nuclio configuration.
Proxy Configuration
docker-compose.yml:18-19 for proxy settings.
Django Settings Files
CVAT uses multiple Django settings files located incvat/settings/:
base.py: Core settings (database, cache, authentication, logging)production.py: Production-specific settingsdevelopment.py: Development settingsemail_settings.py: Email configurationtesting.py: Test environment settings
Custom Settings Overlay
To customize Django settings without modifying core files:- Create a custom
settings.pyfile:
- Mount it in
docker-compose.override.yml:
Docker Compose Configuration
Volume Mounts
CVAT uses several Docker volumes defined indocker-compose.yml:421-428:
cvat_db: PostgreSQL database filescvat_data: Uploaded media and task datacvat_keys: Django secret key storagecvat_logs: Application logscvat_inmem_db: Redis in-memory datacvat_events_db: ClickHouse analytics datacvat_cache_db: Kvrocks on-disk cache
Service Configuration
Key services defined indocker-compose.yml:
cvat_server: Main Django application servercvat_ui: Frontend UI servercvat_db: PostgreSQL databasecvat_redis_inmem: Redis for sessions/cachecvat_redis_ondisk: Kvrocks for media cachecvat_clickhouse: ClickHouse for analyticscvat_vector: Log aggregationcvat_grafana: Analytics dashboardscvat_opa: Open Policy Agent for authorizationtraefik: Reverse proxy
cvat_worker_import: Data import operationscvat_worker_export: Data export operationscvat_worker_annotation: Auto-annotation taskscvat_worker_webhooks: Webhook deliverycvat_worker_quality_reports: Quality control reportscvat_worker_chunks: Video chunk processingcvat_worker_consensus: Consensus calculationscvat_worker_utils: Notifications and cleanup
docker-compose.yml:38-248 for detailed service configurations.
Override Configuration
Create adocker-compose.override.yml to customize your deployment:
Cache Configuration
Cache timeouts defined incvat/settings/base.py:566-580:
Time Zone
cvat/settings/base.py:417.
Additional Resources
- Django Settings Documentation
- Docker Compose File Reference
- Source code:
cvat/settings/base.py,docker-compose.yml