Files
caption-ninja/.env.sample
T
trav 4fcdb2e225 feat: build from captions.coop/captions-deploy, translation models, relay auto-fill
- images/build.sh builds all three images from one pinned captions-deploy
  commit (submodules pin the captions.coop forks; web/Dockerfile is the UI).
- app: UI image configured by env (landing page, site-config.js), translation
  models downloaded into a volume on start (TRANSLATION_MODELS).
- stt: RELAY_AUTOFILL=source|all|off feeds the capture page's /relay-config.
- Drops the recipe's own nginx.conf and web Dockerfile.
2026-10-13 14:49:42 -07:00

49 lines
1.9 KiB
Bash

TYPE=caption-ninja
# First deploy downloads the Whisper model; give abra time to converge.
TIMEOUT=900
# caption.ninja pages (capture, editor, overlay) and the private relay at /relay
DOMAIN=caption-ninja.example.com
# Caption Local speech-to-text service (needs its own hostname: it uses absolute paths)
STT_DOMAIN=stt-caption-ninja.example.com
LETS_ENCRYPT_ENV=production
# Relay room tokens: 32-128 URL-safe chars, all four must differ.
# "source" = capture -> editor, "output" = editor -> overlay/OBS.
SECRET_SRC_READ_VERSION=v1 # length=48
SECRET_SRC_WRITE_VERSION=v1 # length=48
SECRET_OUT_READ_VERSION=v1 # length=48
SECRET_OUT_WRITE_VERSION=v1 # length=48
# Caption Local shared service token (>= 24 chars, no whitespace)
SECRET_STT_API_KEY_VERSION=v1 # length=48
## Speech-to-text tuning (CPU). See upstream docs/DEPLOYMENT-PROFILES.md.
## Whisper model: tiny, base, small (default), medium, large-v3. Bigger = more RAM + CPU.
#CAPTION_MODEL=small
## Decoder beam width 1-5; 1 is fastest
#CAPTION_BEAM_SIZE=5
## Concurrent model workers; threads are per worker. Keep workers*threads <= cores.
#CAPTION_WORKERS=1
#CAPTION_THREADS=4
#CAPTION_MAX_STREAMS=12
## Set to 1 once the model has downloaded into the volume, to stop Hugging Face lookups
#CAPTION_OFFLINE=0
## Metadata-only request logs (no audio/text/tokens)
#CAPTION_LOG_REQUESTS=0
## Translation models served to browsers (downloaded on start, SHA-256 verified):
## "all" (~660 MB), a list like "enes,esen", or "none"
#TRANSLATION_MODELS=all
## Capture-page relay auto-fill: source (default; capture-room tokens only),
## all (also editor output tokens: service-token holders can then publish to the
## audience room without review), or off
#RELAY_AUTOFILL=source
## Extra exact origins (comma separated, e.g. https://steveseguin.github.io)
#RELAY_EXTRA_ORIGINS=
#STT_EXTRA_ORIGINS=
## Max relay sockets per client IP (everyone shares Traefik's IP)
#RELAY_PER_IP=512