1- # Rendiff FFmpeg API - Production Configuration Template
2- # Copy this file to .env and configure for your environment
1+ # Copy this file to .env and update with your values
32
4- # =============================================================================
5- # CORE API SETTINGS
6- # =============================================================================
7- API_HOST = 0.0.0.0
8- API_PORT = 8000
9- API_WORKERS = 4
10- API_RELOAD = false
11- API_LOG_LEVEL = info
12- VERSION = 1.0.0
13-
14- # =============================================================================
15- # DATABASE CONFIGURATION (PostgreSQL - Fully Configured in Docker)
16- # =============================================================================
17- # PostgreSQL is fully configured and managed in Docker Compose
18- # No manual setup required - database and schema created automatically
19- DATABASE_URL = postgresql://ffmpeg_user:ffmpeg_secure_pass_2025@postgres:5432/ffmpeg_api
20- DATABASE_POOL_SIZE = 20
21- DATABASE_MAX_OVERFLOW = 40
22- DATABASE_POOL_TIMEOUT = 30
23- DATABASE_POOL_RECYCLE = 3600
24-
25- # Database connection retry settings
26- DATABASE_RETRY_ATTEMPTS = 5
27- DATABASE_RETRY_DELAY = 2
3+ # Database
4+ POSTGRES_PASSWORD = your_secure_password_here
5+ POSTGRES_USER = ffmpeg_user
6+ POSTGRES_DB = ffmpeg_api
287
29- # =============================================================================
30- # QUEUE CONFIGURATION (Redis - Fully Configured in Docker)
31- # =============================================================================
32- # Redis is fully configured and optimized in Docker Compose
33- # No manual setup required - Redis configured for video processing workloads
34- REDIS_URL = redis://redis:6379/0
35- REDIS_MAX_CONNECTIONS = 100
36- REDIS_RETRY_ON_TIMEOUT = true
37- REDIS_HEALTH_CHECK_INTERVAL = 30
38- REDIS_SOCKET_KEEPALIVE = true
39- REDIS_SOCKET_KEEPALIVE_OPTIONS = {}
40-
41- # =============================================================================
42- # STORAGE CONFIGURATION
43- # =============================================================================
44- # Choose one storage backend: local, s3
45- STORAGE_BACKEND = local
8+ # Monitoring
9+ GRAFANA_PASSWORD = your_grafana_password_here
4610
47- # Local storage settings
11+ # Storage
4812STORAGE_PATH = ./storage
49- TEMP_PATH = /tmp/rendiff
5013
51- # S3 storage settings (when STORAGE_BACKEND=s3)
52- AWS_ACCESS_KEY_ID = your-access-key-id
53- AWS_SECRET_ACCESS_KEY = your-secret-access-key
54- AWS_S3_BUCKET = your-bucket-name
55- AWS_S3_REGION = us-east-1
56- # Optional: For S3-compatible services (MinIO, DigitalOcean Spaces, etc.)
57- # AWS_ENDPOINT_URL=https://nyc3.digitaloceanspaces.com
14+ # API Configuration
15+ LOG_LEVEL = info
16+ API_WORKERS = 4
5817
59- # =============================================================================
60- # WORKER CONFIGURATION
61- # =============================================================================
18+ # Worker Configuration
6219WORKER_CONCURRENCY = 4
63- WORKER_PREFETCH_MULTIPLIER = 1
64- WORKER_MAX_TASKS_PER_CHILD = 100
65- WORKER_TASK_TIME_LIMIT = 21600
66-
67- # =============================================================================
68- # FFMPEG SETTINGS
69- # =============================================================================
70- FFMPEG_THREADS = 0
71- FFMPEG_PRESET = medium
72- FFMPEG_CRF = 23
73- FFMPEG_HARDWARE_ACCELERATION = auto
74-
75- # =============================================================================
76- # SECURITY SETTINGS
77- # =============================================================================
78- API_KEY_HEADER = X-API-Key
79- ENABLE_API_KEYS = true
80- ENABLE_IP_WHITELIST = false
81- IP_WHITELIST = 10.0.0.0/8,192.168.0.0/16
82-
83- # Generate secure API keys for production
84- # You can generate keys with: openssl rand -hex 32
85- ADMIN_API_KEY = your-admin-api-key-here
86- DEFAULT_API_KEY = your-default-api-key-here
87-
88- # =============================================================================
89- # CORS CONFIGURATION
90- # =============================================================================
91- # Comma-separated list of allowed origins
92- CORS_ORIGINS = http://localhost:3000,https://yourdomain.com
93-
94- # =============================================================================
95- # MONITORING & OBSERVABILITY
96- # =============================================================================
97- ENABLE_METRICS = true
98- METRICS_PORT = 9000
99- ENABLE_TRACING = false
100- TRACING_ENDPOINT = http://jaeger:14268/api/traces
101-
102- # =============================================================================
103- # RESOURCE LIMITS
104- # =============================================================================
105- MAX_UPLOAD_SIZE = 10737418240 # 10GB
106- MAX_JOB_DURATION = 21600 # 6 hours
107- MAX_CONCURRENT_JOBS_PER_KEY = 10
108- JOB_RETENTION_DAYS = 7
109-
110- # =============================================================================
111- # WEBHOOK CONFIGURATION
112- # =============================================================================
113- WEBHOOK_TIMEOUT = 30
114- WEBHOOK_MAX_RETRIES = 3
115- WEBHOOK_RETRY_DELAY = 60
116-
117- # =============================================================================
118- # OPTIONAL: VIRUS SCANNING
119- # =============================================================================
120- ENABLE_VIRUS_SCAN = false
121- CLAMAV_HOST = clamav
122- CLAMAV_PORT = 3310
123-
124- # =============================================================================
125- # GENAI FEATURES (OPTIONAL - REQUIRES GPU)
126- # =============================================================================
127- # Enable AI-enhanced video processing features
128- GENAI_ENABLED = false
129-
130- # GPU Configuration (when GENAI_ENABLED=true)
131- GENAI_GPU_ENABLED = true
132- GENAI_GPU_DEVICE = cuda:0
133- GENAI_GPU_MEMORY_LIMIT = 8192 # MB
134-
135- # Model Configuration
136- GENAI_MODEL_PATH = ./models/genai
137- GENAI_MODEL_CACHE_SIZE = 3
138- GENAI_ESRGAN_MODEL = RealESRGAN_x4plus
139- GENAI_VIDEOMAE_MODEL = MCG-NJU/videomae-base
140- GENAI_VMAF_MODEL = vmaf_v0.6.1
141- GENAI_DOVER_MODEL = dover_mobile
142-
143- # Performance Settings
144- GENAI_PARALLEL_WORKERS = 2
145- GENAI_INFERENCE_TIMEOUT = 300
146- GENAI_BATCH_PROCESSING = true
147-
148- # Scene Detection
149- GENAI_SCENE_THRESHOLD = 30.0
150- GENAI_SCENE_MIN_LENGTH = 1.0
151-
152- # Caching
153- GENAI_ENABLE_CACHE = true
154- GENAI_CACHE_TTL = 86400
155- GENAI_CACHE_SIZE = 1000
156-
157- # Monitoring
158- GENAI_ENABLE_METRICS = true
159- GENAI_LOG_INFERENCE_TIME = true
160-
161- # =============================================================================
162- # DEVELOPMENT SETTINGS (NOT FOR PRODUCTION)
163- # =============================================================================
164- DEBUG = false
165- TESTING = false
16620
167- # =============================================================================
168- # DOCKER-SPECIFIC SETTINGS
169- # =============================================================================
170- # Used in Docker deployments
171- COMPOSE_PROJECT_NAME = ffmpeg-api
172- DOCKER_REGISTRY = your-registry.com
173- IMAGE_TAG = latest
21+ # Security - Admin Access
22+ # Generate secure admin keys and add them here (comma-separated)
23+ ADMIN_API_KEYS = your_admin_key_1,your_admin_key_2
0 commit comments