version: "3.9"

services:
  db:
    image: mariadb:10.6
    container_name: librenms_db
    command:
      - --character-set-server=utf8mb4
      - --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: rootpass
      MYSQL_DATABASE: librenms
      MYSQL_USER: librenms
      MYSQL_PASSWORD: librenmspass
    volumes:
      - db_data:/var/lib/mysql
    restart: unless-stopped

  memcached:
    image: memcached:alpine
    container_name: librenms_memcached
    restart: unless-stopped

  redis:
    image: redis:alpine
    container_name: librenms_redis
    restart: unless-stopped

  librenms:
    image: librenms/librenms:latest
    container_name: librenms
    depends_on:
      - db
      - memcached
      - redis
    ports:
      - "8001:8000"
    environment:
      DB_HOST: db
      DB_NAME: librenms
      DB_USER: librenms
      DB_PASSWORD: librenmspass
      TZ: UTC
    volumes:
      - librenms_data:/data
    restart: unless-stopped

  dispatcher:
    image: librenms/librenms:latest
    container_name: librenms_dispatcher
    depends_on:
      - librenms
    environment:
      DB_HOST: db
      DB_NAME: librenms
      DB_USER: librenms
      DB_PASSWORD: librenmspass
      DISPATCHER_NODE_ID: dispatcher1
    volumes:
      - librenms_data:/data
    entrypoint: ["/opt/librenms/librenms-service.py", "dispatcher"]
    restart: unless-stopped

volumes:
  db_data:
  librenms_data:
