.env.example 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. # Environment variables — secrets and endpoint URLs only.
  2. # Copy this file to .env and fill in values.
  3. # Model, voice, and other business settings go in config/default.yaml or CLI flags.
  4. #
  5. # In Docker, docker-compose.yml reads this file and substitutes the values below
  6. # into the container's environment — you do NOT need a .env inside the image.
  7. # --- LLM ---
  8. OPENAI_API_KEY=
  9. OPENAI_BASE_URL=
  10. # --- TTS: OpenAI-compatible (default provider) ---
  11. OPENAI_TTS_API_KEY=
  12. OPENAI_TTS_BASE_URL=
  13. # OPENAI_TTS_MODEL=seed-tts-1.1
  14. # TTS retry count on transient failures (network error / 429 / 5xx). Default 3; 0 disables.
  15. # TTS_MAX_RETRIES=3
  16. # --- TTS: Fish Audio ---
  17. FISH_AUDIO_API_KEY=
  18. # --- TTS: MiniMax ---
  19. MINIMAX_API_KEY=
  20. MINIMAX_GROUP_ID=
  21. # --- TTS: ElevenLabs ---
  22. ELEVENLABS_API_KEY=
  23. # --- Output ---
  24. # Unified output directory for CLI / HTTP / WebUI.
  25. # Leave empty to use config/default.yaml `output.dir` (default ./output, i.e. repo root /output).
  26. # In Docker this is forced to /app/output by docker-compose.
  27. # OUTPUT_DIR=/app/output
  28. # Auto-clean cached outputs older than N days (0 disables). Default 30.
  29. # OUTPUT_RETENTION_DAYS=30
  30. # Where the WebUI stores job metadata (jobs.json). Defaults to the OS temp dir
  31. # (/tmp/pipeline-jobs). In Kubernetes point this at a PVC-backed path (e.g.
  32. # /app/jobs) so job history survives pod restarts; otherwise it lives on
  33. # ephemeral container storage and is lost on restart.
  34. # PIPELINE_JOBS_DIR=/app/jobs
  35. # Timezone for the github-trending cover date (首屏 + 开场口播) and the output
  36. # date subfolder, so the two never disagree and never roll over a day early in
  37. # a UTC container. Default Asia/Shanghai. Docker also sets TZ to this value.
  38. # TIMEZONE=Asia/Shanghai
  39. # --- Publish: Alibaba Cloud OSS ---
  40. # When region/bucket + keys are all present, rendered videos are uploaded and a
  41. # resource URL is returned. Leave blank to disable OSS upload.
  42. OSS_REGION=oss-cn-hangzhou
  43. OSS_BUCKET=
  44. OSS_ACCESS_KEY_ID=
  45. OSS_ACCESS_KEY_SECRET=
  46. # OSS_ENDPOINT=
  47. # OSS_PATH=videos/
  48. # OSS_PUBLIC_DOMAIN=
  49. # OSS_SECURE=true
  50. # --- Publish: Feishu (Lark) custom-bot webhook ---
  51. # When set, results / failures are pushed after each job.
  52. FEISHU_WEBHOOK_URL=
  53. # FEISHU_WEBHOOK_SECRET=
  54. # @mention these members (by open_id) in every pushed message. Custom bots can
  55. # only @mention by open_id, and it must resolve in the bot's tenant (usually a
  56. # group member). Comma-separated for multiple, e.g. ou_abc,ou_def
  57. # FEISHU_AT_OPEN_IDS=
  58. # --- Logging ---
  59. # Log level for the pipeline / TTS / publish loggers (debug|info|warn|error).
  60. # Logs are written to stdout/stderr and mirrored into docker compose logs and
  61. # the per-job "日志" panel. Default info.
  62. # LOG_LEVEL=info
  63. # --- Scheduled renders (in-process scheduler) ---
  64. # Override config/default.yaml `schedules` at deploy time without rebuilding.
  65. # JSON array, same shape as the YAML section, e.g.:
  66. # SCHEDULES=[{"cron":"50 7 * * *","template":"github-trending","platform":"bilibili","source":"github-trending","publish":true}]
  67. # SCHEDULER_ENABLED=false # kill switch for the whole scheduler (default: on)
  68. # --- Container DNS ---
  69. # Public resolvers used by the container (the host's resolver can fail to
  70. # resolve some public domains, e.g. open.feishu.cn behind a VPN). Defaults to
  71. # AliDNS / 114DNS. Set to your internal resolver if you need private hostnames.
  72. # DNS_SERVER_1=223.5.5.5
  73. # DNS_SERVER_2=114.114.114.114
  74. # --- Service port (host port mapped to container 3000) ---
  75. PORT=13000