--- version: '3.5' networks: services: external: name: services services: fastd: build: ./fastd env_file: .env privileged: true # required to create the tap device sysctls: net.ipv6.conf.all.disable_ipv6: 0 # enable ipv6 withn container net.ipv6.conf.all.forwarding: 1 stop_grace_period: 0s restart: unless-stopped networks: - services victoriametrics: image: victoriametrics/victoria-metrics:v1.69.0 command: | -retentionPeriod=24 -selfScrapeInterval=30s volumes: - ./data/victoriametrics:/victoria-metrics-data networks: - services restart: unless-stopped yanic: build: ./yanic network_mode: "service:fastd" stop_grace_period: 10s volumes: - ./data/yanic:/data depends_on: - fastd - victoriametrics restart: unless-stopped meshviewer-collector: build: ./meshviewer-collector network_mode: "service:fastd" stop_grace_period: 10s volumes: - ./data/meshviewer-collector:/data depends_on: - fastd restart: unless-stopped meshviewer: build: ./meshviewer volumes: - ./data/yanic/meshviewer:/usr/share/nginx/html/data labels: traefik.enable: "true" traefik.http.routers.meshviewer.rule: Host(`${MAPSERVER_DOMAIN:?MAPSERVER_DOMAIN is required}`) traefik.http.routers.meshviewer.tls.certresolver: default networks: - services restart: unless-stopped grafana: image: grafana/grafana:8.2.3 volumes: - ./data/grafana:/var/lib/grafana # https://blog.56k.cloud/provisioning-grafana-datasources-and-dashboards-automagically/ - ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources - ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards env_file: .env environment: GF_LOG_MODE: console GF_AUTH_ANONYMOUS_ENABLED: "true" GF_SERVER_ROOT_URL: "%(protocol)s://%(domain)s:%(http_port)s/grafana/" GF_SERVER_SERVE_FROM_SUB_PATH: "true" user: root entrypoint: - /bin/sh - -c - | chown grafana /var/lib/grafana exec su grafana -s /bin/sh -c /run.sh labels: traefik.enable: "true" traefik.http.routers.grafana.rule: Host(`${MAPSERVER_DOMAIN:?MAPSERVER_DOMAIN is required}`) && PathPrefix(`/grafana`) traefik.http.routers.grafana.tls.certresolver: default networks: - services restart: unless-stopped renderer-proxy: image: nginx:1.21-alpine volumes: - ./renderer/nginx.conf:/etc/nginx/conf.d/default.conf:ro labels: traefik.enable: "true" traefik.http.routers.renderer.rule: Host(`${MAPSERVER_DOMAIN:?MAPSERVER_DOMAIN is required}`) && PathPrefix(`/render`) traefik.http.routers.renderer.tls.certresolver: default networks: - services restart: unless-stopped renderer: image: lomik/prometheus-png:v0.5.0 network_mode: "service:renderer-proxy" command: - -config - /etc/config.toml - -prometheus - http://victoriametrics:8428 depends_on: - renderer-proxy restart: unless-stopped volumes: - ./renderer/config.toml:/etc/config.toml:ro # 650x350