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.
81 lines
2.6 KiB
Bash
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
|