Skip to content

Configuration

All settings are environment variables. The recommended minimum:

SECRET_KEY=<openssl rand -hex 32> # required in production (sessions reset otherwise)
GOD_PASSWORD=<a strong password>
ANGEL_PASSWORD=<optional>
HUMAN_PASSWORD=<optional>

If no password is set, a random GOD_PASSWORD is generated and printed to the container logs on startup.

VariableDefaultDescription
SECRET_KEY(random)Session signing key. Set it in production.
GOD_PASSWORD / ANGEL_PASSWORD / HUMAN_PASSWORDPassword for each access level.
HUMAN_OPENfalseAllow the HUMANO level without login (public converter).
WEB_CONCURRENCYautoParallel workers. auto = number of CPU cores.
MAX_UPLOAD_MB100Absolute upload size cap (except DIOS).
WHISPER_MODELbaseTranscription model: tiny · base · small · medium · large-v3.
MAX_MEDIA_MINUTES120Max audio/video duration to transcribe (0 = unlimited; DIOS has no cap).
ENABLE_TTStrueEnable text→audio (narration & podcast).
GOD_TTS_CHARS / ANGEL_TTS_CHARS / HUMAN_TTS_CHARS0 / 100000 / 20000Per-role character cap per MP3 (0 = unlimited; DIOS unlimited by default).
HUMAN_TTSfalseAllow the HUMANO level to generate audio.
TTS_OPENAI_MODELtts-1OpenAI cloud TTS model (tts-1 or tts-1-hd); uses the user’s key.
TTS_TIMEOUT600Max seconds per audio synthesis.
OPENAI_API_KEY / OPENROUTER_API_KEY / GOOGLE_API_KEYServer-side AI keys (fallback when the user provides none). Used by DIOS and ANGEL only.
API_TOKEN / API_TOKEN_ROLE— / angelStatic token for automation (n8n, scripts) and the role it maps to.
EMBEDDED_REDIStrueBuilt-in Redis for shared rate limiting. Set false + REDIS_URL for an external one.
YT_PROXY / YT_COOKIESOptional proxy / cookies.txt for YouTube if transcripts are blocked from your server IP.
ANONIMAL_URLEnables PII anonymization. Point it at the internal Anonimal service. Leave empty to hide the feature.
ENABLE_DOCSfalseExpose Swagger at /api/docs.
PORT8000Container port.

Per-level limits (*_MAX_MB, *_MAX_BATCH, *_RATE) and presets are documented in .env.example in the repository.