Skip to content

Configuration

Full sample: .env.example.
If .env is missing, ./start.sh copies from .env.example.

Quick setup

bash
cp .env.example .env
# at least OPENAI_API_KEY

Most AI options can also be set under Settings → AI services. Env vars fit deploy/Docker injection.

Port & frontend

VariableRoleDefault / example
PORTAPI / prod single-port8787
HOSTBind address (Docker often 0.0.0.0)runtime-dependent
VITE_API_BASEFrontend API prefix/api
PUBLIC_BASE_URLPublic origin for MCP install URLsempty → infer Host

Behind Nginx/Caddy:

bash
PUBLIC_BASE_URL=https://podcast.example.com

OpenAI-compatible AI

VariableRole
OPENAI_API_KEYAPI key
OPENAI_BASE_URLAPI root (any OpenAI-compatible host)
OPENAI_CHAT_MODELScript / flashcards chat model
OPENAI_TRANSCRIBE_MODELASR model
OPENAI_TTS_MODELTTS model
OPENAI_TTS_VOICEDESIGN_MODELVoice Design (optional)
OPENAI_TTS_DEFAULT_VOICEDefault voice name
OPENAI_IMAGE_MODELCover image model (optional)

Use model IDs your provider actually exposes.

Docker CN build (optional)

For ./start.sh docker.cn:

VariableExample
NODE_IMAGEdocker.m.daocloud.io/library/node:22-bookworm-slim
APT_MIRRORmirrors.aliyun.com
NPM_REGISTRYhttps://registry.npmmirror.com

Runtime paths (advanced / image)

VariableMeaningDefault
BOKEBOX_ROOTApp rootmonorepo root
WEB_DISTFrontend distapps/web/dist
STORAGE_DIRData dir$BOKEBOX_ROOT/storage

Compose mounts ./storage/app/storage by default.

Storage layout

text
storage/
  jobs/
  albums/
  plugins/{source,asr,tts,schedule}/
  app.db*          # runtime; do not commit