version: '2.4' services: # DOCKERPROXY dockerproxy: container_name: dockerproxy hostname: dockerproxy restart: always environment: CONTAINERS: 1 image: tecnativa/docker-socket-proxy labels: - "com.centurylinklabs.watchtower.enable=true" volumes: - /var/run/docker.sock:/var/run/docker.sock - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - net-dockerproxy # TRAEFIK traefik: container_name: traefik hostname: traefik depends_on: - dockerproxy environment: - TZ=Europe/Berlin image: traefik:latest labels: - "traefik.docker.network=net-webproxy" - "providers.file.filename=/dynamic_conf.yml" - "traefik.enable=true" ports: - 80:80 - 443:443 - 8086:8086 restart: always volumes: - ./traefik/dynamic_conf.yml:/dynamic_conf.yml:ro - ./traefik/traefik.yml:/traefik.yml:ro - ./traefik/mycert.crt:/certs/cert.crt:ro - ./traefik/mycert.key:/certs/privkey.key:ro - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - net-dockerproxy - net-webproxy - net-webproxy-no-inet # INFLUXDB influxdb: container_name: influxdb hostname: influxdb image: influxdb depends_on: - traefik restart: always labels: - "traefik.enable=true" - "traefik.http.routers.influxdb-secure.entrypoints=influxdb" - "traefik.http.routers.influxdb-secure.rule=Host(`PLACE_YOUR_FQDN_HERE`)" - "traefik.http.routers.influxdb-secure.tls=true" - "traefik.http.routers.influxdb-secure.service=influxdb" - "traefik.http.routers.influxdb-secure.middlewares=secHeaders@file" - "traefik.http.services.influxdb.loadbalancer.server.port=8086" - "traefik.docker.network=net-webproxy-no-inet" volumes: - ${MyPath}/influxdb/data:/var/lib/influxdb2 - ${MyPath}/influxdb/config:/etc/influxdb2 - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: - DOCKER_INFLUXDB_INIT_MODE - DOCKER_INFLUXDB_INIT_USERNAME - DOCKER_INFLUXDB_INIT_PASSWORD - DOCKER_INFLUXDB_INIT_ORG - DOCKER_INFLUXDB_INIT_BUCKET - DOCKER_INFLUXDB_INIT_ADMIN_TOKEN - DOCKER_INFLUXDB_INIT_RETENTION networks: - net-webproxy-no-inet # GRAFANA grafana: container_name: grafana hostname: grafana image: grafana/grafana depends_on: - influxdb restart: always labels: - "traefik.enable=true" - "traefik.http.routers.grafana.entrypoints=http" - "traefik.http.routers.grafana.rule=Host(`PLACE_YOUR_FQDN_HERE`)" - "traefik.http.middlewares.grafana-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.grafana.middlewares=grafana-https-redirect" - "traefik.http.routers.grafana-secure.entrypoints=https" - "traefik.http.routers.grafana-secure.rule=Host(`PLACE_YOUR_FQDN_HERE`)" - "traefik.http.routers.grafana-secure.tls=true" - "traefik.http.routers.grafana-secure.service=grafana" - "traefik.http.routers.grafana-secure.middlewares=secHeaders@file" - "traefik.http.services.grafana.loadbalancer.server.port=3000" - "traefik.docker.network=net-webproxy-no-inet" volumes: - ./grafana/provisioning:/etc/grafana/provisioning:ro - ${MyPath}/grafana/var_lib:/var/lib/grafana - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: - GF_AUTH_ANONYMOUS_ENABLED - GF_SECURITY_ALLOW_EMBEDDING - GF_INSTALL_PLUGINS networks: - net-webproxy-no-inet # latency-monitor latency-monitor: container_name: latency-monitor hostname: latency-monitor build: ./Docker_Build depends_on: - influxdb restart: always volumes: # - ./latency-monitor/config.ini:/app/config.ini:ro # UNCOMMENT IF NEEDED - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro environment: - INFLUX_URL - INFLUX_TOKEN - INFLUX_BUCKET - INFLUX_ORG - TARGET_HOST - TARGET_TIMEOUT - TARGET_TIMER - TARGET_LOCATION networks: - net-webproxy - net-webproxy-no-inet networks: net-dockerproxy: external: false net-webproxy: external: false net-webproxy-no-inet: external: false