Files
UmbraAudio/.env
B.D. Murphy 26de44feb1 Cluster worker for the UmbraTrans integration
The UmbraAudio side of the cross-machine contract: this node registers
with the UmbraTrans controller, polls for jobs, claims them under a
lease, and writes artifacts back over NFS.

* `umbraaudio/cluster/` - configuration, PostgreSQL access, node
  registration and heartbeat, the job queue, artifact storage and NFS
  mount management.
* `scripts/cluster_worker.py` - the CLI: `worker`, `check-cluster`,
  `register-node`.
* `scripts/backup_system.sh` / `scripts/verify_backup.sh` - whole-system
  backup and integrity verification.
* `.env` - the `UMBRA_CLUSTER__*` settings. `UMBRA_CLUSTER__PG_PASSWORD`
  is deliberately empty; the password comes from the environment, not
  from a committed file.

`k3s-agent.yaml` is NOT committed: it contains a K3s server join token.
It is now gitignored, and the token should be rotated if that file has
ever left this machine.

ruff clean on the whole package.
2026-11-06 17:03:16 -08:00

81 lines
2.6 KiB
Bash

# UmbraAudio Environment Configuration
# Copy this to .env and modify as needed
# --- Project ---
UMBRA_PROJECT_DIR=.
UMBRA_DATA_DIR=.umbra
# --- TTS ---
UMBRA_TTS__ENGINE=qwen
UMBRA_TTS__DEVICE=mps
UMBRA_TTS__SAMPLE_RATE=24000
UMBRA_TTS__MAX_RETRIES=3
UMBRA_TTS__RETRY_DELAY=2.0
UMBRA_TTS__VOICEDESIGN_MODEL=/Volumes/1TB_APL_Storage/UmbraAudio/models/Qwen3-TTS-12Hz-1.7B-VoiceDesign
UMBRA_TTS__BASE_MODEL=/Volumes/1TB_APL_Storage/UmbraAudio/models/Qwen3-TTS-12Hz-1.7B-Base
UMBRA_TTS__QWEN_TTS_URL=http://localhost:8881
# The GPU box (192.168.123.14) is retired and removed from the configuration:
# it is offline and being reconfigured, so there is no relay and no helper URL.
# Local Qwen3-TTS on 8881 is the only TTS backend.
# --- LLM ---
UMBRA_LLM__PROVIDER=auto
UMBRA_LLM__LMSTUDIO_BASE_URL=http://localhost:1234/v1
UMBRA_LLM__LMSTUDIO_MODEL=qwen/qwen3.5-9b
UMBRA_LLM__OPENAI_MODEL=gpt-4o
UMBRA_LLM__TEMPERATURE=0.3
UMBRA_LLM__MAX_TOKENS=4096
# --- Web ---
UMBRA_WEB__HOST=0.0.0.0
UMBRA_WEB__PORT=8420
UMBRA_WEB__AUTO_OPEN=false
# --- Quality ---
UMBRA_QUALITY__MIN_MOS=3.8
UMBRA_QUALITY__MIN_TEST_MOS=4.0
UMBRA_QUALITY__MAX_WER=0.03
UMBRA_QUALITY__MIN_SPEAKER_SIMILARITY=0.80
UMBRA_QUALITY__MIN_TEST_SPEAKER_SIMILARITY=0.85
UMBRA_QUALITY__MIN_ARTIFACT_SCORE=3.5
# --- Audio ---
UMBRA_AUDIO__TARGET_RMS_DB=-20.0
UMBRA_AUDIO__PEAK_LIMIT_DB=-3.0
UMBRA_AUDIO__NOISE_FLOOR_DB=-60.0
UMBRA_AUDIO__SILENCE_BETWEEN_UTTERANCES_MS=500
UMBRA_AUDIO__SILENCE_BETWEEN_PARAGRAPHS_MS=2000
UMBRA_AUDIO__SILENCE_BETWEEN_CHAPTERS_MS=4000
# --- Cluster (UmbraTrans integration) ---
UMBRA_CLUSTER__PG_HOST=192.168.123.14
UMBRA_CLUSTER__PG_PORT=6432
UMBRA_CLUSTER__PG_DATABASE=umbratrans
UMBRA_CLUSTER__PG_USER=umbraudio
UMBRA_CLUSTER__PG_PASSWORD=
UMBRA_CLUSTER__PG_SSLMODE=require
UMBRA_CLUSTER__PG_DIRECT_PORT=5432
UMBRA_CLUSTER__NFS_SERVER=192.168.123.14
UMBRA_CLUSTER__NFS_PRODUCTIONS_PATH=/mnt/umbra-data/productions
UMBRA_CLUSTER__NFS_ARTIFACTS_PATH=/mnt/umbra-data/artifacts
UMBRA_CLUSTER__NFS_COVERS_PATH=/mnt/umbra-data/covers
UMBRA_CLUSTER__NFS_AUDIO_PATH=/mnt/umbra-data/audio
UMBRA_CLUSTER__LOCAL_MOUNT_ROOT=/mnt/umbra
UMBRA_CLUSTER__NODE_ID=umbra-audio-01
UMBRA_CLUSTER__ORGANIZATION_ID=umbra
UMBRA_CLUSTER__DATACENTER=local
UMBRA_CLUSTER__AGENT_VERSION=1.0.0
UMBRA_CLUSTER__NODE_CREDENTIAL_PREFIX=umbra-audio-01-
UMBRA_CLUSTER__NODE_SCOPES=queue:claim,queue:complete,artifacts:write
UMBRA_CLUSTER__POLL_INTERVAL_SECONDS=10
UMBRA_CLUSTER__LEASE_DURATION_MINUTES=30
UMBRA_CLUSTER__ALLOWED_JOB_KINDS=tts,asr,assemble,encode,master,speaker_profile
UMBRA_CLUSTER__HEARTBEAT_INTERVAL_SECONDS=30
UMBRA_CLUSTER__HEARTBEAT_TIMEOUT_MINUTES=2