.env.example 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. # Where github-daily-pick keeps its dedup history (covered.json — already
  36. # featured repos + weekly recap delivery records). MUST be a persistent path:
  37. # losing it means the same repo can be featured again. Defaults to the OS temp
  38. # dir — docker-compose points it into the jobs bind mount
  39. # (/tmp/pipeline-jobs/covered); Kubernetes uses the jobs PVC (/app/jobs/covered).
  40. # PIPELINE_COVERED_DIR=/app/jobs/covered
  41. # Timezone for the github-trending cover date (首屏 + 开场口播) and the output
  42. # date subfolder, so the two never disagree and never roll over a day early in
  43. # a UTC container. Default Asia/Shanghai. Docker also sets TZ to this value.
  44. # TIMEZONE=Asia/Shanghai
  45. # --- Publish: Alibaba Cloud OSS ---
  46. # When region/bucket + keys are all present, rendered videos are uploaded and a
  47. # resource URL is returned. Leave blank to disable OSS upload.
  48. OSS_REGION=oss-cn-hangzhou
  49. OSS_BUCKET=
  50. OSS_ACCESS_KEY_ID=
  51. OSS_ACCESS_KEY_SECRET=
  52. # OSS_ENDPOINT=
  53. # OSS_PATH=videos/
  54. # OSS_PUBLIC_DOMAIN=
  55. # OSS_SECURE=true
  56. # --- Publish: Feishu (Lark) custom-bot webhook ---
  57. # When set, results / failures are pushed after each job.
  58. FEISHU_WEBHOOK_URL=
  59. # FEISHU_WEBHOOK_SECRET=
  60. # @mention these members (by open_id) in every pushed message. Custom bots can
  61. # only @mention by open_id, and it must resolve in the bot's tenant (usually a
  62. # group member). Comma-separated for multiple, e.g. ou_abc,ou_def
  63. # FEISHU_AT_OPEN_IDS=
  64. # --- Logging ---
  65. # Log level for the pipeline / TTS / publish loggers (debug|info|warn|error).
  66. # Logs are written to stdout/stderr and mirrored into docker compose logs and
  67. # the per-job "日志" panel. Default info.
  68. # LOG_LEVEL=info
  69. # --- Scheduled renders (in-process scheduler) ---
  70. # Override config/default.yaml `schedules` at deploy time without rebuilding.
  71. # JSON array, same shape as the YAML section, e.g.:
  72. # SCHEDULES=[{"cron":"50 7 * * *","template":"github-trending","platform":"bilibili","source":"github-trending","publish":true}]
  73. # SCHEDULER_ENABLED=false # kill switch for the whole scheduler (default: on)
  74. # --- Container DNS ---
  75. # Public resolvers used by the container (the host's resolver can fail to
  76. # resolve some public domains, e.g. open.feishu.cn behind a VPN). Defaults to
  77. # AliDNS / 114DNS. Set to your internal resolver if you need private hostnames.
  78. # DNS_SERVER_1=223.5.5.5
  79. # DNS_SERVER_2=114.114.114.114
  80. # --- Service port (host port mapped to container 3000) ---
  81. PORT=13000