- 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.
49 lines
1.9 KiB
Bash
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
|