Files
UmbraAudio/.env.example
umbra audio 9f403cb873 Untrack .env now that this repository is public
Adding `.env` to .gitignore on its own would have changed nothing, which is the whole
point of doing this properly.

.gitignore only applies to files git is not already tracking. This repository has tracked
`.env` since the initial commit, so an ignore entry would have been inert: git would carry
on tracking the file and would have committed a secret placed in it later, while the
.gitignore looked like it was handling it. The untracking is what does the work, and the
comment in .gitignore says so, because "the entry is there but the file is still tracked"
is a silent failure that reads as protection.

Worth being accurate about what was and was not a risk. The committed `.env` was checked
before this change rather than assumed to be dangerous: 32 keys, all of them paths, engine
names, model locations, thresholds and ports. No API key, no token, no password. An earlier
report that this file held live secrets was wrong. `infra/umbra-node.json` likewise
declares itself to carry only ids, names, labels and counts.

So nothing needs purging from history and nothing needs rotating. What needed fixing was
the gap that would have turned the next ordinary mistake - pasting an API key into .env -
into a public commit. That is now closed, verified three ways: .env is absent from the
index, `git check-ignore` confirms the rule matches, and `git add .env` is refused.

.env is untracked with `git rm --cached`, so the working file is untouched and the
application still reads it. Untracking rather than deleting was deliberate: this file is
the machine's real configuration, and a fresh clone now needs .env.example instead.

.env.example is new, generated from .env with all 32 keys and no values. A clone now knows
what to set without anything machine-specific being shared. Verified: zero lines in it
carry a value.

On a branch rather than master, because untracking .env changes what a fresh clone gets
and that is a workflow change rather than a pure fix. Merge or cherry-pick as suits.

No behaviour change. The application reads .env at runtime through pydantic-settings in
four places and none of them care whether git is watching the file.
2026-10-06 18:30:16 -07:00

40 lines
1.2 KiB
Plaintext

# UmbraAudio configuration - TEMPLATE.
#
# Copy to .env and fill in. `.env` is gitignored and untracked; this file is the
# tracked one, so it carries every key and no values.
#
# Generated from .env with values removed. Nothing here is machine-specific, so
# every line is a placeholder: a path, an engine name, a threshold, or a port.
UMBRA_PROJECT_DIR=
UMBRA_DATA_DIR=
UMBRA_TTS__ENGINE=
UMBRA_TTS__DEVICE=
UMBRA_TTS__SAMPLE_RATE=
UMBRA_TTS__MAX_RETRIES=
UMBRA_TTS__RETRY_DELAY=
UMBRA_TTS__VOICEDESIGN_MODEL=
UMBRA_TTS__BASE_MODEL=
UMBRA_TTS__QWEN_TTS_URL=
UMBRA_TTS__QWEN_TTS_HELPER_URL=
UMBRA_LLM__PROVIDER=
UMBRA_LLM__LMSTUDIO_BASE_URL=
UMBRA_LLM__LMSTUDIO_MODEL=
UMBRA_LLM__OPENAI_MODEL=
UMBRA_LLM__TEMPERATURE=
UMBRA_LLM__MAX_TOKENS=
UMBRA_WEB__HOST=
UMBRA_WEB__PORT=
UMBRA_WEB__AUTO_OPEN=
UMBRA_QUALITY__MIN_MOS=
UMBRA_QUALITY__MIN_TEST_MOS=
UMBRA_QUALITY__MAX_WER=
UMBRA_QUALITY__MIN_SPEAKER_SIMILARITY=
UMBRA_QUALITY__MIN_TEST_SPEAKER_SIMILARITY=
UMBRA_QUALITY__MIN_ARTIFACT_SCORE=
UMBRA_AUDIO__TARGET_RMS_DB=
UMBRA_AUDIO__PEAK_LIMIT_DB=
UMBRA_AUDIO__NOISE_FLOOR_DB=
UMBRA_AUDIO__SILENCE_BETWEEN_UTTERANCES_MS=
UMBRA_AUDIO__SILENCE_BETWEEN_PARAGRAPHS_MS=
UMBRA_AUDIO__SILENCE_BETWEEN_CHAPTERS_MS=