services:
  lavalink:
    # pin the image version to Lavalink v4
    image: ghcr.io/lavalink-devs/lavalink:3.7.10
    container_name: lavalink
    restart: unless-stopped
    environment:
      # set Java options here
      - _JAVA_OPTIONS=-Xmx6G
      # set lavalink server port
      - SERVER_PORT=2333
      # set password for lavalink
      - LAVALINK_SERVER_PASSWORD=youshallnotpass
    volumes:
      # mount application.yml from the same directory or use environment variables
      - ./application.yml:/opt/Lavalink/application.yml
      # persist plugins between restarts, make sure to set the correct permissions (user: 322, group: 322)
      - ./plugins/:/opt/Lavalink/plugins/
    networks:
      - lavalink
    expose:
      # lavalink exposes port 2333 to connect to for other containers (this is for documentation purposes only)
      - 2333
    ports:
      # you only need this if you want to make your lavalink accessible from outside of containers
      - "2333:2333"
networks:
  # create a lavalink network you can add other containers to, to give them access to Lavalink
  lavalink:
    name: lavalink