.env.example 4.0 KB

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