SNAC + torch no longer load at startup — deferred to first Orpheus call via double-checked locking. Startup drops from ~13s to 0.5s, idle RAM reduced by ~200MB. OrpheusEngine constructor no longer takes snac_model; it self-loads on demand.
37 lines
1005 B
YAML
37 lines
1005 B
YAML
services:
|
|
tts-mcp:
|
|
build: .
|
|
container_name: tts-mcp
|
|
restart: unless-stopped
|
|
env_file: .env
|
|
environment:
|
|
# Override for Docker networking (container DNS instead of IPs)
|
|
TTS_PIPER_HOST: piper-tts
|
|
TTS_OLLAMA_URL: http://host.docker.internal:11434
|
|
# PipeWire client config
|
|
XDG_RUNTIME_DIR: /run/user/1000
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
volumes:
|
|
# Kokoro ONNX models (read-only)
|
|
- ./models:/app/models:ro
|
|
# HuggingFace cache for SNAC model download (lazy-loaded on first Orpheus call)
|
|
- hf-cache:/home/tts/.cache/huggingface
|
|
# PipeWire socket for audio playback through host speakers
|
|
- /run/user/1000/pipewire-0:/run/user/1000/pipewire-0
|
|
networks:
|
|
- caddy
|
|
- dootie-internal
|
|
labels:
|
|
caddy: voice.l.supported.systems
|
|
caddy.reverse_proxy: "{{upstreams 8371}}"
|
|
|
|
volumes:
|
|
hf-cache:
|
|
|
|
networks:
|
|
caddy:
|
|
external: true
|
|
dootie-internal:
|
|
external: true
|