Files
desklock/gateway/src/desklock_gateway/config.py
T
jpmschweitzerandClaude Fable 5 014c86f51e
Test, Build and Push / test-gateway (push) Successful in 11s
Test, Build and Push / release (push) Skipped
Test, Build and Push / build-gateway (push) Skipped
chore(gateway): drop schweitz.internal, default to http://tatlock:8000
The homelab is retiring the *.schweitz.internal domain; in-network
machine-to-machine traffic uses docker container names on the
docker-dataplane network. The deployed tatlock-ui stack already overrides
DESKLOCK_TATLOCK_BASE_URL (Tatlock runs on the host), so only the
fallback default changes.

Docs follow: AGENTS.md M2M guidance now points at container names with
*.schweitz.net reserved for browsers, architecture.md drops the retired
domain (the registry name now matches what CI actually pushes since
c477019), and the README diagram loses the stale hostname.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-19 12:22:25 +02:00

35 lines
1.1 KiB
Python

from pydantic_settings import BaseSettings
class Settings(BaseSettings):
"""Gateway configuration, overridable via DESKLOCK_* environment variables."""
tatlock_base_url: str = "http://tatlock:8000"
tatlock_model: str = "Tatlock"
# PCM rate of the device WebSocket contract (docs/architecture.md)
sample_rate: int = 16000
# "speaches" (shared speech container) or "embedded" (in-process models)
stt_backend: str = "speaches"
tts_backend: str = "speaches"
speaches_base_url: str = "http://localhost:8601"
stt_model: str = "Systran/faster-whisper-small"
tts_model: str = "speaches-ai/Kokoro-82M-v1.0-ONNX"
tts_voice: str = "bm_george"
# Spoken immediately after a query is accepted, to fill the long Tatlock wait.
# Avoid "for you" — Kokoro inserts an unnatural mid-phrase pause before it.
filler_text: str = "Let me check on that, sir."
# embedded fallback only (requires the [speech] extra)
embedded_stt_model: str = "small"
embedded_stt_device: str = "cuda"
embedded_tts_voice: str = "en_GB-alan-medium"
model_config = {"env_prefix": "DESKLOCK_"}
settings = Settings()