Files
compose/vocard/docker-compose.yml
2025-12-08 20:59:27 -04:00

90 lines
2.8 KiB
YAML

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"
healthcheck:
test: nc -z -v localhost 2333
interval: 10s
timeout: 5s
retries: 5
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
healthcheck:
test: nc -z -v localhost 49152
interval: 10s
timeout: 5s
retries: 5
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