services: aitherboard: container_name: aitherboard # Build from source (always rebuilds - use --no-cache flag when running) build: context: . dockerfile: Dockerfile # 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" # Note: To force rebuild: docker-compose build --no-cache aitherboard && docker-compose up -d # Alternative: Using pre-built image (for production) # Uncomment the image line below and comment out the build section above # image: silberengel/aitherboard:latest 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