name: vocard services: lavalink: container_name: lavalink image: ghcr.io/lavalink-devs/lavalink:latest restart: unless-stopped environment: - _JAVA_OPTIONS=-Xmx1G - SERVER_PORT=2333 # there is no point in changing the password here, since the container is available only in docker network - LAVALINK_SERVER_PASSWORD=youshallnotpass # Change password if needed (don't forget to change it in healthcheck below and settings.json) volumes: - /docker/appdata/vocard/lavalink/application.yml:/opt/Lavalink/application.yml networks: - vocard expose: - "2333" spotify-tokener: image: ghcr.io/topi314/spotify-tokener:master container_name: spotify-tokener restart: unless-stopped environment: - SPOTIFY_TOKENER_ADDR=0.0.0.0:49152 networks: - vocard ports: - 49152:49152 vocard-db: container_name: vocard-db image: mongo:8 restart: unless-stopped volumes: - /docker/appdata/vocard/mongo/db:/data/db - /docker/appdata/vocard/mongo/conf:/data/configdb environment: - MONGO_INITDB_ROOT_USERNAME=admin # For your MongoDB URL use "mongodb://admin:admin@vocard-db:27017" - MONGO_INITDB_ROOT_PASSWORD=admin expose: - "27017" networks: - vocard command: ["mongod", "--oplogSize=1024", "--wiredTigerCacheSizeGB=1", "--auth", "--noscripting"] healthcheck: test: echo 'db.runCommand("ping").ok' | mongosh localhost:27017/test --quiet interval: 10s timeout: 5s retries: 5 start_period: 10s vocard-dashboard: container_name: vocard-dashboard image: ghcr.io/chocomeow/vocard-dashboard:latest restart: unless-stopped volumes: - /docker/appdata/vocard/dashboard/settings.json:/app/settings.json ports: - 8000:8000 networks: - vocard vocard: container_name: vocard restart: unless-stopped image: ghcr.io/chocomeow/vocard:latest volumes: - /docker/appdata/vocard/vocard/settings.json:/app/settings.json networks: - vocard depends_on: #lavalink: # condition: service_healthy vocard-db: condition: service_healthy networks: vocard: name: vocard