Skip to content

Commit a8cfc9f

Browse files
committed
API updates + AI Models
1 parent c789bfa commit a8cfc9f

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

59 files changed

+9439
-1053
lines changed

.env.example

Lines changed: 173 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,173 @@
1+
# Rendiff FFmpeg API - Production Configuration Template
2+
# Copy this file to .env and configure for your environment
3+
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
28+
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
46+
47+
# Local storage settings
48+
STORAGE_PATH=./storage
49+
TEMP_PATH=/tmp/rendiff
50+
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
58+
59+
# =============================================================================
60+
# WORKER CONFIGURATION
61+
# =============================================================================
62+
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+
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

0 commit comments

Comments
 (0)