-
Notifications
You must be signed in to change notification settings - Fork 0
Configuration Reference
Carlos Cuadra edited this page Apr 21, 2025
·
4 revisions
This document contains a complete reference of environment variables used to configure the MP4 Conversion Hub application.
| Variable | Default | Description |
|---|---|---|
ADMIN_USER |
admin |
Username for accessing the web interface. |
ADMIN_PASSWORD |
changeme |
Password for the web interface. Change it in production! |
| Variable | Default | Description |
|---|---|---|
TRUST_PROXY |
false |
If you're behind a proxy (e.g., Nginx, Docker bridge), specify its IP or CIDR. Use false if not behind a proxy. |
CORS_ALLOWED_ORIGINS |
* |
Comma-separated list of origins allowed for CORS. Use * to allow all origins. |
| Variable | Default | Description |
|---|---|---|
CONCURRENCY |
1 |
Number of concurrent video conversion jobs. Increase to utilize more CPU. |
VIDEO_ENCODING_PRESET |
ultrafast |
FFmpeg encoding speed preset. Valid values: ultrafast, superfast, fast, medium, slow, etc. |
VIDEO_CRF |
28 |
Constant Rate Factor for video quality. Lower means higher quality. Range: 0–51. Recommended: 18–28. |
| Variable | Default | Description |
|---|---|---|
GENERAL_RATE_LIMIT_MAX_ATTEMPTS |
100 |
Max requests per IP before rate limiting is triggered. |
GENERAL_RATE_LIMIT_COOLDOWN_MINUTES |
1 |
Cooldown period (minutes) after hitting general limit. |
| Variable | Default | Description |
|---|---|---|
UPLOAD_RATE_LIMIT_MAX_ATTEMPTS |
5 |
Max upload requests before cooldown applies. |
UPLOAD_RATE_LIMIT_COOLDOWN_MINUTES |
1 |
Cooldown period (minutes) for uploads. |
UPLOAD_SIZE_LIMIT_MB |
3000 |
Max allowed upload file size in megabytes. |
| Variable | Default | Description |
|---|---|---|
AUTH_RATE_LIMIT_MAX_ATTEMPTS |
3 |
Max failed login attempts before cooldown. |
AUTH_RATE_LIMIT_COOLDOWN_MINUTES |
5 |
Cooldown period (minutes) for failed login attempts. |
| Variable | Default | Description |
|---|---|---|
GEMINI_API_KEY |
— | Google Gemini API key. Required for AI-based metadata classification. |
TMDB_API_KEY |
— | TMDB (The Movie Database) API key. Used for enriching movie/series metadata. |
LANGUAGE |
en-US |
Preferred language for metadata from Gemini and TMDB. |
GEMINI_MODEL |
gemini-2.0-flash |
Gemini model to use. Supported values: gemini-1.0-pro, gemini-1.5-pro, gemini-1.5-flash, gemini-2.0-pro, gemini-2.0-flash, gemini-pro. |
| Variable | Default | Description |
|---|---|---|
WEBHOOK_URL |
— | If set, a POST request with detailed processing results will be sent to this URL after every video job. |
| Variable | Default | Description |
|---|---|---|
DAILY_TASK_CRON |
0 2 * * * |
Cron expression defining when the ClamAV DB update should run. |
DAILY_TASK_TIMEZONE |
UTC |
Timezone to use for the scheduled update task (e.g. Europe/Madrid, America/New_York). |
# Authentication
ADMIN_USER=admin
ADMIN_PASSWORD=changeme
# Proxy & Networking
TRUST_PROXY=false
CORS_ALLOWED_ORIGINS=*
# Video Conversion
CONCURRENCY=1
VIDEO_ENCODING_PRESET=ultrafast
VIDEO_CRF=28
# Uploads
UPLOAD_SIZE_LIMIT_MB=3000
UPLOAD_RATE_LIMIT_MAX_ATTEMPTS=5
UPLOAD_RATE_LIMIT_COOLDOWN_MINUTES=1
# Authentication Rate Limits
AUTH_RATE_LIMIT_MAX_ATTEMPTS=3
AUTH_RATE_LIMIT_COOLDOWN_MINUTES=5
# General Rate Limits
GENERAL_RATE_LIMIT_MAX_ATTEMPTS=100
GENERAL_RATE_LIMIT_COOLDOWN_MINUTES=1
# AI Metadata Enrichment
GEMINI_API_KEY=your-gemini-api-key
TMDB_API_KEY=your-tmdb-api-key
GEMINI_MODEL=gemini-2.0-flash
LANGUAGE=es-ES
# Webhooks
WEBHOOK_URL=https://your-service.com/webhook-endpointTo customize the preferred language used in AI-based metadata enrichment, use the LANGUAGE environment variable.
LANGUAGE=es-ESThe following language codes are supported:
-
Afrikaans (
af): af-ZA -
Arabic (
ar): ar-AE, ar-BH, ar-EG, ar-IQ, ar-JO, ar-LY, ar-MA, ar-QA, ar-SA, ar-TD, ar-YE -
Belarusian (
be): be-BY -
Bulgarian (
bg): bg-BG -
Bengali (
bn): bn-BD -
Breton (
br): br-FR -
Catalan (
ca): ca-AD, ca-ES -
Chamorro (
ch): ch-GU -
Czech (
cs): cs-CZ -
Welsh (
cy): cy-GB -
Danish (
da): da-DK -
German (
de): de-AT, de-CH, de-DE -
Modern Greek (
el): el-CY, el-GR -
English (
en): en-AG, en-AU, en-BB, en-BZ, en-CA, en-CM, en-GB, en-GG, en-GH, en-GI, en-GY, en-IE, en-JM, en-KE, en-LC, en-MW, en-NZ, en-PG, en-TC, en-US, en-ZM, en-ZW -
Esperanto (
eo): eo-EO -
Spanish (
es): es-AR, es-CL, es-DO, es-EC, es-ES, es-GQ, es-GT, es-HN, es-MX, es-NI, es-PA, es-PE, es-PY, es-SV, es-UY -
Estonian (
et): et-EE -
Basque (
eu): eu-ES -
Persian (
fa): fa-IR -
Finnish (
fi): fi-FI -
French (
fr): fr-BF, fr-CA, fr-CD, fr-CI, fr-FR, fr-GF, fr-GP, fr-MC, fr-ML, fr-MU, fr-PF -
Irish (
ga): ga-IE -
Scottish Gaelic (
gd): gd-GB -
Galician (
gl): gl-ES -
Hebrew (
he): he-IL -
Hindi (
hi): hi-IN -
Croatian (
hr): hr-HR -
Hungarian (
hu): hu-HU -
Indonesian (
id): id-ID -
Italian (
it): it-IT, it-VA -
Japanese (
ja): ja-JP -
Georgian (
ka): ka-GE -
Kazakh (
kk): kk-KZ -
Kannada (
kn): kn-IN -
Korean (
ko): ko-KR -
Kirghiz (
ky): ky-KG -
Lithuanian (
lt): lt-LT -
Latvian (
lv): lv-LV -
Malayalam (
ml): ml-IN -
Marathi (
mr): mr-IN -
Malay (
ms): ms-MY, ms-SG -
Norwegian Bokmål (
nb): nb-NO -
Dutch (
nl): nl-BE, nl-NL -
Norwegian (
no): no-NO -
Panjabi (
pa): pa-IN -
Polish (
pl): pl-PL -
Portuguese (
pt): pt-AO, pt-BR, pt-MZ, pt-PT -
Romanian (
ro): ro-MD, ro-RO -
Russian (
ru): ru-RU -
Sinhala (
si): si-LK -
Slovak (
sk): sk-SK -
Slovenian (
sl): sl-SI -
Albanian (
sq): sq-AL, sq-XK -
Serbian (
sr): sr-ME, sr-RS -
Swedish (
sv): sv-SE -
Swahili (
sw): sw-TZ -
Tamil (
ta): ta-IN -
Telugu (
te): te-IN -
Thai (
th): th-TH -
Tagalog (
tl): tl-PH -
Turkish (
tr): tr-TR -
Ukrainian (
uk): uk-UA -
Urdu (
ur): ur-PK -
Vietnamese (
vi): vi-VN -
Chinese (
zh): zh-CN, zh-HK, zh-SG, zh-TW -
Zulu (
zu): zu-ZA
To define when the ClamAV update should run, set both DAILY_TASK_CRON and DAILY_TASK_TIMEZONE.
You must provide a valid IANA timezone string. Some examples:
UTCEurope/MadridAmerica/New_YorkAsia/Tokyo
📖 Full list of valid timezones:
https://en.wikipedia.org/wiki/List_of_tz_database_time_zones