services: db: image: postgres:16 restart: always environment: POSTGRES_USER: user POSTGRES_PASSWORD: password POSTGRES_DB: muzick ports: - "5432:5432" volumes: - ./data/postgres:/var/lib/postgresql/data - ./backend/src/db/schema.sql:/docker-entrypoint-initdb.d/schema.sql redis: image: redis:7 restart: always ports: - "6379:6379" volumes: - ./data/redis:/data search: image: typesense/typesense:0.25.1 restart: always ports: - "8108:8108" volumes: - ./data/typesense:/data command: --data-dir /data --api-key=muzick-key backend: build: ./backend ports: - "3000:3000" environment: DATABASE_URL: postgresql://user:password@db:5432/muzick REDIS_URL: redis://redis:6379 TYPESENSE_API_KEY: muzick-key MUSIC_DIR: /music volumes: - /mnt/hdd1/media/Music:/music:ro depends_on: - db - redis - search frontend: build: ./frontend ports: - "5174:80" depends_on: - backend worker: build: ./workers network_mode: host environment: DATABASE_URL: postgresql://user:password@127.0.0.1:5432/muzick REDIS_URL: redis://127.0.0.1:6379 MUSICBRAINZ_CONTACT: ${MUSICBRAINZ_CONTACT} LASTFM_API_KEY: ${LASTFM_API_KEY} LASTFM_SHARED_SECRET: ${LASTFM_SHARED_SECRET} DISCOGS_TOKEN: ${DISCOGS_TOKEN} SOCKS_PROXY_URL: ${SOCKS_PROXY_URL} MUSIC_DIR: /music volumes: - /mnt/hdd1/media/Music:/music:ro