# Remember to scale the worker to minimum 2 # this is achieved with the deploy replicas command below services: # Redis service for RQ (task queue) redis: image: redis:7-alpine container_name: audiomuse-redis ports: - "6479:6379" # Expose Redis port to the host volumes: - redis-data:/data # Persistent storage for Redis data restart: unless-stopped # PostgreSQL database service postgres: image: postgres:15-alpine container_name: audiomuse-postgres environment: POSTGRES_USER: "audiomuse" POSTGRES_PASSWORD: "changeme" POSTGRES_DB: "audiomusedb" ports: - "5432:5432" # Expose PostgreSQL port to the host volumes: - postgres-data:/var/lib/postgresql/data # Persistent storage for PostgreSQL data restart: unless-stopped # AudioMuse-AI Flask application service audiomuse-ai-flask: image: ghcr.io/neptunehub/audiomuse-ai:latest-nvidia container_name: audiomuse-ai-flask-app ports: - "10000:8000" environment: SERVICE_TYPE: "flask" MEDIASERVER_TYPE: "navidrome" NAVIDROME_URL: "http://NAVIDROME-IP-HERE:4533/" NAVIDROME_USER: "NAVIDROME-USER-HERE" NAVIDROME_PASSWORD: "NAVIDROME-PASSWORD-HERE" POSTGRES_USER: "audiomuse" POSTGRES_PASSWORD: "changeme" POSTGRES_DB: "audiomusedb" POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" REDIS_URL: "redis://redis:6379/0" GEMINI_API_KEY: "GEMINI-API-KEY-HERE" TEMP_DIR: "/app/temp_audio" volumes: - temp-audio-flask:/app/temp_audio depends_on: - redis - postgres restart: unless-stopped # AudioMuse-AI RQ Worker service audiomuse-ai-worker: image: ghcr.io/neptunehub/audiomuse-ai:latest-nvidia deploy: replicas: 2 resources: reservations: devices: - driver: nvidia device_ids: ["0"] capabilities: [gpu] # container_name: audiomuse-ai-worker-instance # can't name and use deploy replicas environment: SERVICE_TYPE: "worker" MEDIASERVER_TYPE: "navidrome" NAVIDROME_URL: "http://NAVIDROME-IP-HERE:4533/" NAVIDROME_USER: "NAVIDROME-USER-HERE" NAVIDROME_PASSWORD: "NAVIDROME-PASSWORD-HERE" POSTGRES_USER: "audiomuse" POSTGRES_PASSWORD: "changeme" POSTGRES_DB: "audiomusedb" POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" REDIS_URL: "redis://redis:6379/0" GEMINI_API_KEY: "GEMINI-API-HERE" TEMP_DIR: "/app/temp_audio" volumes: - temp-audio-worker:/app/temp_audio depends_on: - redis - postgres restart: unless-stopped # Define volumes for persistent data and temporary files volumes: redis-data: postgres-data: temp-audio-flask: temp-audio-worker: