From b30aa23d6463811ba8df59b3a09a7cfa9b0a1974 Mon Sep 17 00:00:00 2001 From: Admin Date: Fri, 27 Mar 2026 16:29:36 +0500 Subject: [PATCH] fix(homelab): pocket-tts uses locally-built image, correct start command and volumes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - pocket-tts has no prebuilt image on ghcr.io — must be built from source on homelab - Updated image to pocket-tts:latest (local tag), add command with --host 0.0.0.0 - Add model cache volumes (pocket_tts_cache, hf_cache) so model weights survive restarts - start_period increased to 120s (first startup downloads weights) --- homelab/docker-compose.yml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) 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: