services: # Redis service for RQ (task queue) redis: image: redis:7-alpine container_name: audiomuse-redis volumes: - /srv/appdata/audiomuse/redis:/data networks: - audiomuse_internal restart: unless-stopped # PostgreSQL database service postgres: image: postgres:15-alpine container_name: audiomuse-postgres env_file: - /srv/docker/secrets/audiomuse/.env environment: POSTGRES_USER: "audiomuse" POSTGRES_DB: "audiomusedb" volumes: - /srv/appdata/audiomuse/postgres:/var/lib/postgresql/data networks: - audiomuse_internal restart: unless-stopped # AudioMuse-AI Flask application service audiomuse-ai-flask: image: ghcr.io/neptunehub/audiomuse-ai:latest container_name: audiomuse-ai-flask-app env_file: - /srv/docker/secrets/audiomuse/.env environment: SERVICE_TYPE: "flask" TZ: UTC POSTGRES_USER: "audiomuse" POSTGRES_DB: "audiomusedb" POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" REDIS_URL: "redis://redis:6379/0" TEMP_DIR: "/app/temp_audio" volumes: - /srv/appdata/audiomuse/temp-audio-flask:/app/temp_audio - /srv/appdata/audiomuse/plugins-flask:/app/plugin/installed depends_on: - redis - postgres networks: audiomuse_internal: npm_proxy: ipv4_address: 192.168.97.25 restart: unless-stopped # AudioMuse-AI RQ Worker service audiomuse-ai-worker: image: ghcr.io/neptunehub/audiomuse-ai:latest container_name: audiomuse-ai-worker-instance env_file: - /srv/docker/secrets/audiomuse/.env environment: SERVICE_TYPE: "worker" TZ: UTC POSTGRES_USER: "audiomuse" POSTGRES_DB: "audiomusedb" POSTGRES_HOST: "postgres" POSTGRES_PORT: "5432" REDIS_URL: "redis://redis:6379/0" TEMP_DIR: "/app/temp_audio" volumes: - /srv/appdata/audiomuse/temp-audio-worker:/app/temp_audio - /srv/appdata/audiomuse/plugins-worker:/app/plugin/installed depends_on: - redis - postgres networks: audiomuse_internal: npm_proxy: ipv4_address: 192.168.97.26 restart: unless-stopped networks: audiomuse_internal: npm_proxy: external: true