services: # Auth files should be generated with `htpasswd -c /home/peter/docker/traefik/conf/$file.auth [username]` traefik: image: traefik:2.3 container_name: traefik restart: always environment: - "CF_DNS_API_TOKEN=${CLOUDFLARE_API_TOKEN}" command: - "--providers.docker=true" - "--providers.file.directory=/conf" - "--providers.file.watch=true" - "--entrypoints.web.address=:80" - "--entrypoints.web.http.redirections.entryPoint.to=websecure" - "--entrypoints.web.http.redirections.entryPoint.scheme=https" - "--entrypoints.web.http.redirections.entrypoint.permanent=true" - "--entrypoints.websecure.address=:443" - "--certificatesresolvers.letsencrypt.acme.dnschallenge=true" - "--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=cloudflare" - "--certificatesresolvers.letsencrypt.acme.storage=/certs/acme.json" - "--accesslog=true" - "--log.level=ERROR" - "--log.filePath=/var/log/traefik.log" - "--serverstransport.insecureskipverify=true" labels: - "traefik.enable=true" - "traefik.http.middlewares.compress.compress=true" ports: - "80:80" - "443:443" networks: - traefik volumes: - type: bind source: /var/run/docker.sock target: /var/run/docker.sock read_only: true - type: volume source: traefik target: /certs - type: bind source: /home/peter/docker/traefik/conf target: /conf read_only: true influxdb: container_name: influxdb networks: - traefik restart: always labels: - "traefik.enable=false" environment: - "INFLUXDB_ADMIN_USER=admin" - "INFLUXDB_ADMIN_PASSWORD=password" - "INFLUXDB_DB=speedtest" volumes: - type: volume source: speedtest_influxdb target: /var/lib/influxdb image: 'influxdb:1.5' speedtestplusplus: container_name: speedtest networks: - traefik labels: - "traefik.enable=false" restart: always environment: - "SPEEDTEST_INTERVAL=600" - "SPEEDTEST_HOST=local" image: valki/speedtestplusplus grafana: container_name: grafana networks: - traefik restart: always expose: - '3000' labels: - "traefik.enable=true" - "traefik.http.routers.speedtest-grafana.rule=Host(`speedtest.peters-homelab.com`)" - "traefik.http.routers.speedtest-grafana.entrypoints=websecure" - "traefik.http.routers.speedtest-grafana.service=speedtest-grafana" - "traefik.http.routers.speedtest-grafana.tls=true" - "traefik.http.routers.speedtest-grafana.tls.certresolver=letsencrypt" - "traefik.http.services.speedtest-grafana.loadbalancer.server.port=3000" volumes: - type: volume source: speedtest_grafana target: /etc/grafana/provisioning - type: volume source: grafana-storage target: /var/lib/grafana environment: - "GF_SERVER_ROOT_URL=http://localhost" - "GF_SECURITY_ADMIN_PASSWORD=admin" - "GF_AUTH_ANONYMOUS_ENABLED=true" image: "grafana/grafana:latest" networks: traefik: name: traefik driver: bridge driver_opts: com.docker.network.bridge.name: br_traefik ipam: driver: default config: - subnet: 10.160.0.0/22 volumes: traefik: speedtest_influxdb: speedtest_grafana: grafana-storage: