# Environment variables — secrets and endpoint URLs only. # Copy this file to .env and fill in values. # Model, voice, and other business settings go in config/default.yaml or CLI flags. # # In Docker, docker-compose.yml reads this file and substitutes the values below # into the container's environment — you do NOT need a .env inside the image. # --- LLM --- OPENAI_API_KEY= OPENAI_BASE_URL= # --- TTS: OpenAI-compatible (default provider) --- OPENAI_TTS_API_KEY= OPENAI_TTS_BASE_URL= # OPENAI_TTS_MODEL=seed-tts-1.1 # TTS retry count on transient failures (network error / 429 / 5xx). Default 3; 0 disables. # TTS_MAX_RETRIES=3 # --- TTS: Fish Audio --- FISH_AUDIO_API_KEY= # --- TTS: MiniMax --- MINIMAX_API_KEY= MINIMAX_GROUP_ID= # --- TTS: ElevenLabs --- ELEVENLABS_API_KEY= # --- Output --- # Unified output directory for CLI / HTTP / WebUI. # Leave empty to use config/default.yaml `output.dir` (default ./output, i.e. repo root /output). # In Docker this is forced to /app/output by docker-compose. # OUTPUT_DIR=/app/output # Auto-clean cached outputs older than N days (0 disables). Default 30. # OUTPUT_RETENTION_DAYS=30 # Timezone for the github-trending cover date (首屏 + 开场口播) and the output # date subfolder, so the two never disagree and never roll over a day early in # a UTC container. Default Asia/Shanghai. Docker also sets TZ to this value. # TIMEZONE=Asia/Shanghai # --- Publish: Alibaba Cloud OSS --- # When region/bucket + keys are all present, rendered videos are uploaded and a # resource URL is returned. Leave blank to disable OSS upload. OSS_REGION=oss-cn-hangzhou OSS_BUCKET= OSS_ACCESS_KEY_ID= OSS_ACCESS_KEY_SECRET= # OSS_ENDPOINT= # OSS_PATH=videos/ # OSS_PUBLIC_DOMAIN= # OSS_SECURE=true # --- Publish: Feishu (Lark) custom-bot webhook --- # When set, results / failures are pushed after each job. FEISHU_WEBHOOK_URL= # FEISHU_WEBHOOK_SECRET= # --- Logging --- # Log level for the pipeline / TTS / publish loggers (debug|info|warn|error). # Logs are written to stdout/stderr and mirrored into docker compose logs and # the per-job "日志" panel. Default info. # LOG_LEVEL=info # --- Container DNS --- # Public resolvers used by the container (the host's resolver can fail to # resolve some public domains, e.g. open.feishu.cn behind a VPN). Defaults to # AliDNS / 114DNS. Set to your internal resolver if you need private hostnames. # DNS_SERVER_1=223.5.5.5 # DNS_SERVER_2=114.114.114.114 # --- Service port (host port mapped to container 3000) --- PORT=13000