78 lines
2.5 KiB
YAML
78 lines
2.5 KiB
YAML
# ════════════════════════════════════════════════
|
|
# ARIA XTTS v2 — GPU TTS Server
|
|
# Laeuft auf dem Gaming-PC (RTX 3060)
|
|
# Verbindet sich zum RVS fuer TTS-Requests
|
|
# ════════════════════════════════════════════════
|
|
#
|
|
# Voraussetzungen:
|
|
# - Docker Desktop mit WSL2
|
|
# - NVIDIA Container Toolkit
|
|
# - .env mit RVS-Verbindungsdaten
|
|
#
|
|
# Start: docker compose up -d
|
|
# Test: curl http://localhost:8000/docs
|
|
# ════════════════════════════════════════════════
|
|
|
|
services:
|
|
|
|
# ─── XTTS v2 API Server (GPU) ─────────────────
|
|
xtts:
|
|
image: daswer123/xtts-api-server:latest
|
|
container_name: aria-xtts
|
|
deploy:
|
|
resources:
|
|
reservations:
|
|
devices:
|
|
- driver: nvidia
|
|
count: 1
|
|
capabilities: [gpu]
|
|
ports:
|
|
- "8000:8020"
|
|
volumes:
|
|
- xtts-models:/app/xtts_models # Model-Cache (~2GB)
|
|
- ./voices:/voices # Custom Voice Samples
|
|
environment:
|
|
- COQUI_TOS_AGREED=1
|
|
# Local-Modus: Modell bleibt dauerhaft im GPU-VRAM (~2GB). Vorteile:
|
|
# - Render startet sofort (kein reload pro Request)
|
|
# - /tts_stream funktioniert → echtes Streaming mit ~500ms time-to-first-audio
|
|
# Ohne diesen command: apiManual-Modus, jede Anfrage laedt Modell neu, kein Streaming.
|
|
# Der NVIDIA-Entrypoint erwartet Python als ausfuehrbares Command, nicht nur Flags.
|
|
command:
|
|
- python
|
|
- -m
|
|
- xtts_api_server
|
|
- -hs
|
|
- "0.0.0.0"
|
|
- -p
|
|
- "8020"
|
|
- -ms
|
|
- local
|
|
- -o
|
|
- /app/output
|
|
- -mf
|
|
- /app/xtts_models
|
|
- -sf
|
|
- /voices
|
|
restart: unless-stopped
|
|
|
|
# ─── XTTS Bridge (verbindet zu RVS) ───────────
|
|
xtts-bridge:
|
|
build: .
|
|
container_name: aria-xtts-bridge
|
|
depends_on:
|
|
- xtts
|
|
volumes:
|
|
- ./voices:/voices # Shared mit XTTS-Server
|
|
environment:
|
|
- XTTS_API_URL=http://xtts:8020
|
|
- RVS_HOST=${RVS_HOST}
|
|
- RVS_PORT=${RVS_PORT:-443}
|
|
- RVS_TLS=${RVS_TLS:-true}
|
|
- RVS_TLS_FALLBACK=${RVS_TLS_FALLBACK:-true}
|
|
- RVS_TOKEN=${RVS_TOKEN}
|
|
restart: unless-stopped
|
|
|
|
volumes:
|
|
xtts-models:
|