Carry patches/0001 on our Scriberr build (upstream a353078): adjacent buffered chunks overlap by 4 s inside --chunk-len and hand over at a word both chunks transcribed alike, instead of cutting at fixed marks with no overlap. Pause-aware cutting is included as an opt-in (--pause-search); it measured neutral once the stitch was right. The Go<->Python CLI and JSON seam is unchanged. Bench (4 recordings, 118 min, 3 cut placements each, against a no-cut whole-file reference; metrics only, private audio stays on fv-ml1): cuts with an error within +-3 s fall from 52% (93/179) to 22% (41/184) against a 19% background; floor +-0.08. Positive control: upstream's cutter +0.33 over background. A-vs-A byte-identical in-process and across CLI processes. Peak GPU memory unchanged at 5,496 MiB (n=3). Also found: Parakeet skips runs of >=10 words mid-chunk with any slicer, upstream's included; not addressed here. scripts/scriberr-rebuild clones a pinned upstream sha into a new /opt/docker/src dir, git-apply-checks the patches, builds a distinct tag, and checks embed, unit tests, the JSON seam (scriberr-seam-check.py) and the memory budget on idle GPU 3. Deploy stays manual. The upstream PR is prepared under patches/upstream-pr/ and not opened.
56 lines
3.4 KiB
Bash
56 lines
3.4 KiB
Bash
# Scriberr — copy to .env on the host at /opt/docker/compose/scriberr/.env
|
|
# Real .env is gitignored and lives only on fv-ml1.
|
|
|
|
# ── Image ────────────────────────────────────────────────────────────────
|
|
# Built locally from Dockerfile.cuda.12.9 — see the compose header for why
|
|
# the published scriberr-cuda image is NOT usable on these Blackwell cards.
|
|
# Patched builds come from scripts/scriberr-rebuild and are tagged
|
|
# scriberr:local-blackwell-<upstream sha7>-<suffix> (e.g. -a353078-slicer1)
|
|
# so every build keeps its own tag. Deploying = pointing this at a new tag;
|
|
# rollback = pointing it back. See stacks/scriberr/patches/README.md.
|
|
# (Unset falls back to the original unpatched scriberr:local-blackwell.)
|
|
SCRIBERR_IMAGE=scriberr:local-blackwell
|
|
|
|
# ── Network ──────────────────────────────────────────────────────────────
|
|
SCRIBERR_PORT=8080
|
|
SCRIBERR_BIND=0.0.0.0
|
|
# CORS. Must list every origin the UI is actually reached from, or the
|
|
# browser blocks the API calls. Comma-separated, no spaces, no trailing /.
|
|
SCRIBERR_ALLOWED_ORIGINS=http://10.251.50.54:8080,http://scriberr.fv.internal:8080
|
|
|
|
# ── GPU ──────────────────────────────────────────────────────────────────
|
|
# GPU0 is fully committed to the `gen` seat; GPU1 is the one with headroom.
|
|
SCRIBERR_GPU_ID=1
|
|
|
|
# ── Storage (on /tank — NOT the root pool, weights are multi-GB) ─────────
|
|
SCRIBERR_DATA_DIR=/tank/scriberr/data
|
|
SCRIBERR_ENV_DIR=/tank/scriberr/whisperx-env
|
|
|
|
# ── Runtime ──────────────────────────────────────────────────────────────
|
|
# ⚠ 10001, not the fleet-usual 1000. The Blackwell image's `appuser` IS 10001
|
|
# and its PUID remapping is broken — at 1000 the app cannot open its SQLite DB
|
|
# and crash-loops. The /tank dirs are chowned to 10001:10001 to match.
|
|
# See README "The PUID trap".
|
|
SCRIBERR_PUID=10001
|
|
SCRIBERR_PGID=10001
|
|
# Keep false while the app is served over plain HTTP. Setting this true
|
|
# without TLS makes login silently fail (cookie marked Secure, dropped).
|
|
SCRIBERR_SECURE_COOKIES=false
|
|
|
|
# ── Optional: summarisation / transcript chat ────────────────────────────
|
|
# Scriberr speaks the OpenAI API. Point it at the LiteLLM gateway so this
|
|
# costs nothing and stays on-prem, rather than a paid vendor key.
|
|
# Configure the base URL in the Scriberr UI (Settings -> AI provider):
|
|
# base URL : http://10.250.50.70:4000/v1
|
|
# model : summarizer (or gen / gen-reasoning)
|
|
# The key below is the shared all-agents gateway key.
|
|
# ⚠ That key also reaches PAID passthrough models (GLM, Kimi) on a shared
|
|
# tab — keep the configured model on a free local seat.
|
|
# SCRIBERR_OPENAI_API_KEY=
|
|
|
|
# GPU 1 memory budget (2026-09-30). Parakeet slice length in seconds and the
|
|
# torch allocator mode; see compose.yaml for the measurements. Defaults apply
|
|
# when unset; override only with a re-measured peak.
|
|
# SCRIBERR_PARAKEET_CHUNK_SECS=120
|
|
# SCRIBERR_PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True
|