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
3
2
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
28
7
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
46
10
47
- # Local storage settings
11
+ # Storage
48
12
STORAGE_PATH = ./storage
49
- TEMP_PATH = /tmp/rendiff
50
13
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
58
17
59
- # =============================================================================
60
- # WORKER CONFIGURATION
61
- # =============================================================================
18
+ # Worker Configuration
62
19
WORKER_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
166
20
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