diff --git a/homelab/docker-compose.yml b/homelab/docker-compose.yml index 878c69c..c1dfded 100644 --- a/homelab/docker-compose.yml +++ b/homelab/docker-compose.yml @@ -414,21 +414,27 @@ services: # ── pocket-tts (CPU TTS) ──────────────────────────────────────────────────── # Lightweight CPU-only TTS using kyutai-labs/pocket-tts. - # OpenAI-compatible: POST /v1/audio/speech on port 8000. - # Voices: alba, marius, javert, jean, fantine, cosette, eponine, azelma. + # Image is built locally on homelab from https://github.com/kyutai-labs/pocket-tts + # (no prebuilt image published): cd /tmp && git clone --depth=1 https://github.com/kyutai-labs/pocket-tts.git && docker build -t pocket-tts:latest /tmp/pocket-tts + # OpenAI-compatible: POST /tts (multipart form) on port 8000. + # Voices: alba, marius, javert, jean, fantine, cosette, eponine, azelma, etc. # Not currently used by the runner (runner uses kokoro-fastapi), but available # for experimentation / fallback. pocket-tts: - image: ghcr.io/kyutai-labs/pocket-tts:latest + image: pocket-tts:latest restart: unless-stopped + command: ["uv", "run", "pocket-tts", "serve", "--host", "0.0.0.0"] expose: - "8000" + volumes: + - pocket_tts_cache:/root/.cache/pocket_tts + - hf_cache:/root/.cache/huggingface healthcheck: test: ["CMD", "curl", "-sf", "http://localhost:8000/health"] interval: 30s timeout: 10s retries: 5 - start_period: 60s + start_period: 120s # ── Watchtower ────────────────────────────────────────────────────────────── # Auto-updates runner image when CI pushes a new tag. @@ -453,3 +459,5 @@ volumes: prometheus_data: loki_data: grafana_data: + pocket_tts_cache: + hf_cache: