# Hearthwave — NVIDIA CUDA deployment (build-from-source). *** STUB *** # # This profile is scaffolded but NOT yet validated on an NVIDIA host. The image # builds onnxruntime-gpu (see backend/Dockerfile COMPUTE_BACKEND=cuda), and the # GPU is granted via the NVIDIA Container Toolkit `deploy.resources` block below. # Before using: # 1. Install the NVIDIA Container Toolkit on the host. # 2. Confirm `docker run --rm --gpus all nvidia/cuda:12.4.0-base nvidia-smi` works. # 3. Wire the STT final pass to CUDA (the GPU transcriber currently targets # torch "cuda" which works on NVIDIA too, but this path is untested here). # 4. Remove this banner once validated. # # bash setup-cuda.sh # docker compose -f docker-compose.cuda.yml up --build name: hearthwave services: backend: build: context: . dockerfile: backend/Dockerfile args: COMPUTE_BACKEND: cuda volumes: - ./data:/data - ./Voices:/app/Voices:ro - ./Models:/app/backend/Models:ro - /run/user/${PULSE_UID:-1000}/pulse:/run/pulse:ro environment: - PULSE_SERVER=unix:/run/pulse/native - NVIDIA_VISIBLE_DEVICES=all - NVIDIA_DRIVER_CAPABILITIES=compute,utility devices: - /dev/snd:/dev/snd deploy: resources: reservations: devices: - driver: nvidia count: all capabilities: [gpu] restart: unless-stopped networks: - radio healthcheck: test: ["CMD", "python3", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8765/health')"] interval: 10s timeout: 5s retries: 5 start_period: 20s frontend: build: context: ./frontend dockerfile: Dockerfile ports: - "80:8080" volumes: - ./data:/data:ro depends_on: backend: condition: service_started restart: unless-stopped networks: - radio networks: radio: driver: bridge