version: "3.9" volumes: prometheus_data: {} grafana_data: {} services: # Mikrotik Exporter # https://github.com/nshttpd/mikrotik-exporter mikrotik_exporter: image: nshttpd/mikrotik-exporter-linux-arm64:1.0.12-DEVEL # Change this depending on your version and/or if you built the image locally volumes: - './mikrotik_exporter:/config' env_file: .env ports: - 9436:9436 networks: - default restart: unless-stopped # Prometheus # https://github.com/stefanprodan/dockprom prometheus: image: prom/prometheus:v2.28.1 container_name: prometheus volumes: - ./prometheus:/etc/prometheus - prometheus_data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' restart: unless-stopped ports: - 9090:9090 networks: - default labels: org.label-schema.group: "monitoring" # Grafana # https://github.com/stefanprodan/dockprom grafana: image: grafana/grafana:8.0.4 container_name: grafana volumes: - grafana_data:/var/lib/grafana - ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources environment: - GF_SECURITY_ADMIN_USER=${ADMIN_USER:-admin} - GF_SECURITY_ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin} - GF_USERS_ALLOW_SIGN_UP=false restart: unless-stopped ports: - 3000:3000 - 80:3000 networks: - default labels: org.label-schema.group: "monitoring"