services: aitherboard: container_name: aitherboard # Using pre-built image (recommended for production) image: silberengel/aitherboard:latest # Alternative: Build from source (for development) # build: # context: . # # Optional: override defaults from config.ts if needed # # Uncomment and modify if you want custom values: # # args: # # VITE_DEFAULT_RELAYS: "wss://theforest.nostr1.com,wss://nostr21.com,wss://nostr.land" # # VITE_THREAD_TIMEOUT_DAYS: "30" ports: - "9876:9876" environment: - PORT=9876 - NODE_ENV=production - PIPER_TTS_HOST=piper-tts - PIPER_TTS_PORT=10200 restart: unless-stopped depends_on: piper-tts: condition: service_healthy networks: - aitherboard-network piper-tts: container_name: piper-tts # Option 1: Use pre-built image (recommended for production) # Build and push the image first: # 1. git clone https://github.com/rhasspy/wyoming-piper.git wyoming-piper # 2. cd wyoming-piper # 3. docker build -t your-registry/wyoming-piper:latest . # 4. docker push your-registry/wyoming-piper:latest # Then uncomment the image line below and update with your registry/image name image: silberengel/wyoming-piper:latest # Option 2: Build from source (for development or if no registry) # Uncomment the build section below and comment out the image line above #build: #context: ./wyoming-piper #dockerfile: Dockerfile # Port 10200 is only used internally by aitherboard container # No need to expose it to the host expose: - "10200" command: # --voice is required at startup but can be overridden in synthesize messages # This is the default/fallback voice - --voice - en_US-lessac-medium - --uri - tcp://0.0.0.0:10200 - --data-dir - /data volumes: - ./piper-data:/data restart: unless-stopped networks: - aitherboard-network healthcheck: test: ["CMD-SHELL", "timeout 3 bash -c 'echo > /dev/tcp/localhost/10200' || exit 1"] interval: 10s timeout: 5s retries: 5 start_period: 30s networks: aitherboard-network: driver: bridge