Skip to main content
This guide covers the configuration options available for self-hosted CVAT deployments using Docker Compose.

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

For sensitive passwords, use the file-based approach:
See cvat/settings/base.py:711 for the password file implementation.

Redis Configuration

CVAT uses two Redis instances: In-Memory Redis (session data, caching)
On-Disk Redis/Kvrocks (media cache)

ClickHouse (Analytics Database)

See 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)
See cvat/settings/base.py:36-38 for ALLOWED_HOSTS configuration.

Logging

See cvat/settings/base.py:481-553 for logging configuration.

Application Settings

Analytics

Enables analytics features including Grafana dashboards and event tracking. See cvat/settings/base.py:177-180.

Worker Configuration

Number of worker processes for each worker type. Set in docker-compose.yml:98 for the server and various worker containers.

Feature Flags

See 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)
See cvat/settings/base.py:549 and cvat/settings/base.py:759.

Health Checks

Maximum disk usage percentage before health check fails. See cvat/settings/base.py:788.

Serverless Functions (Nuclio)

See cvat/settings/base.py:345-357 for Nuclio configuration.

Proxy Configuration

See docker-compose.yml:18-19 for proxy settings.

Django Settings Files

CVAT uses multiple Django settings files located in cvat/settings/:
  • base.py: Core settings (database, cache, authentication, logging)
  • production.py: Production-specific settings
  • development.py: Development settings
  • email_settings.py: Email configuration
  • testing.py: Test environment settings

Custom Settings Overlay

To customize Django settings without modifying core files:
  1. Create a custom settings.py file:
  1. Mount it in docker-compose.override.yml:

Docker Compose Configuration

Volume Mounts

CVAT uses several Docker volumes defined in docker-compose.yml:421-428:
  • cvat_db: PostgreSQL database files
  • cvat_data: Uploaded media and task data
  • cvat_keys: Django secret key storage
  • cvat_logs: Application logs
  • cvat_inmem_db: Redis in-memory data
  • cvat_events_db: ClickHouse analytics data
  • cvat_cache_db: Kvrocks on-disk cache

Service Configuration

Key services defined in docker-compose.yml:
  • cvat_server: Main Django application server
  • cvat_ui: Frontend UI server
  • cvat_db: PostgreSQL database
  • cvat_redis_inmem: Redis for sessions/cache
  • cvat_redis_ondisk: Kvrocks for media cache
  • cvat_clickhouse: ClickHouse for analytics
  • cvat_vector: Log aggregation
  • cvat_grafana: Analytics dashboards
  • cvat_opa: Open Policy Agent for authorization
  • traefik: Reverse proxy
Worker services (handle background tasks):
  • cvat_worker_import: Data import operations
  • cvat_worker_export: Data export operations
  • cvat_worker_annotation: Auto-annotation tasks
  • cvat_worker_webhooks: Webhook delivery
  • cvat_worker_quality_reports: Quality control reports
  • cvat_worker_chunks: Video chunk processing
  • cvat_worker_consensus: Consensus calculations
  • cvat_worker_utils: Notifications and cleanup
See docker-compose.yml:38-248 for detailed service configurations.

Override Configuration

Create a docker-compose.override.yml to customize your deployment:

Cache Configuration

Cache timeouts defined in cvat/settings/base.py:566-580:

Time Zone

Set the timezone for the application. See cvat/settings/base.py:417.

Additional Resources