SolScribe’s server images no longer report usage to third parties. As of 1.8.6.0, the README lists every connection a self-hosted server makes. It also says what each one receives.
Nothing is sent to SolScribe, and your audio and transcripts stay on your server unless you send them elsewhere yourself. Transcript text leaves for a hosted AI provider (OpenAI or Anthropic) or a webhook you configure, and audio leaves for Private Cloud processing if you turn it on. The docs used to say that nothing leaves the server. That was not accurate, and they now describe what does.
What was being sent
Two libraries inside the speech pipeline reported usage by default.
pyannote.audio runs voice detection on every job and assigns speaker labels. It sent pyannoteAI each run’s audio duration and speaker settings. ONNX Runtime sent Microsoft usage events a few seconds after it loaded. Neither received audio or transcript text, and neither was something a self-hoster had agreed to.
The images now set PYANNOTE_METRICS_ENABLED=false and ORT_DISABLE_TELEMETRY=1. CI checks that the images keep both settings and fails any image that drops either. If you want to opt back in, set them to true and 0.
A server run from source does not inherit the image’s environment, so it needs both variables set in its own.
Connections that remain
A self-hosted server downloads its models. That is an outbound connection, and it is listed.
Once the models are in place, HF_HUB_OFFLINE=1 stops the Hugging Face update check each job otherwise makes. The Compose files pass it through, so setting it once is enough.
The list is meant to be checked against your own firewall logs.
Speaker labels without the internet
WhisperX’s word alignment used to fetch NLTK’s sentence tokenizer from GitHub in every new container. On a server with no internet, or behind a proxy, that fetch failed and jobs finished without speaker labels or word timestamps.
The images now ship the tokenizer, pinned and checked against its SHA-256, so that download is gone. CI fails an image that lacks it or cannot align English with no network.
Alignment still needs its models. Each language’s alignment model downloads on its first job, so a server with no internet has speaker labels and word timestamps for the languages it aligned while online. A source install can add the tokenizer once with scripts/install-punkt-tab.sh ~/nltk_data.
Also in 1.8.6
The WhisperX batch size setting now reaches the engine. A server left at the default of 16 sees no change. A higher value is faster on a GPU and needs more memory, so test a large one on a CPU-only server before relying on it.
solscribe reencrypt now covers every column sealed with the transcript key, including summaries, notes and chat messages, and the recovery files quick-transcribe leaves behind. Before retiring a key on an existing install, run reencrypt again so those rows move to the active key.
The docker run and Compose examples now publish port 8443, which is where HTTPS listens by default.
Upgrading
Pull 1.8.6.0 or later. Images up to 1.8.5.1 report usage to pyannoteAI, and recent ones to Microsoft too, so the upgrade is the fix. If you run from source, set the two variables above.
SolScribe is self-hosted transcription built on WhisperX, with a hosted option. More at solscribe.ai.