Skip to content

Instantly share code, notes, and snippets.

@IosifZ
Last active January 26, 2023 14:22
Show Gist options
  • Save IosifZ/d804138ee6072ed5192a6860e51a7cbe to your computer and use it in GitHub Desktop.
Save IosifZ/d804138ee6072ed5192a6860e51a7cbe to your computer and use it in GitHub Desktop.
Traefik and Speedtest Tracker
version: '3.7'
services:
traefik_v2.0:
image: 'traefik:2.9.6'
container_name: traefik_v2
hostname: traefik_v2
ports:
- '443:443'
- '80:80'
- '8080:8080'
volumes:
- '/var/run/docker.sock:/var/run/docker.sock'
- 'letsencrypt:/letsencrypt'
- './traefik_v2/rules.yml:/rules.yml'
env_file:
- .env
restart: unless-stopped
labels:
- com.ouroboros.enable=true
- traefik.enable=true
- traefik.http.routers.traefik.entrypoints=web
- traefik.http.routers.traefik.rule=Host(`traefik.localhost`)
- traefik.http.services.traefik.loadbalancer.server.port=8080
- traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https
- "traefik.http.middlewares.BUFFER.buffering.maxrequestbodybytes=256000000"
- "traefik.http.middlewares.BUFFER.buffering.maxresponsebodybytes=256000000"
- "traefik.http.middlewares.BUFFER.buffering.memrequestbodybytes=256000000"
- "traefik.http.middlewares.BUFFER.buffering.memresponsebodybytes=256000000"
- 'traefik.http.routers.redirs.rule=hostregexp(`{host:.+}`)'
- traefik.http.routers.redirs.entrypoints=web
- traefik.http.routers.redirs.middlewares=redirect-to-https
environment:
- 'CLOUDFLARE_EMAIL=${EMAIL}'
- 'CLOUDFLARE_API_KEY=${API_KEY}'
- com.ouroboros.enable=true
- 'TZ=${TZ}'
- TRAEFIK_API_DASHBOARD=true
command:
- '--log.level=DEBUG'
- '--log.format=json'
- '--experimental.hub=true'
- '--hub.tls.insecure'
- '--metrics.prometheus.addrouterslabels=true'
- '--global.checkNewVersion=true'
- '--global.sendAnonymousUsage=false'
- '--entryPoints.web.address=:80'
- '--entryPoints.web-secure.address=:443'
- '--api'
- '--api.debug'
- '--api.insecure=true'
- '--api.dashboard=true'
- '--ping'
- '--providers.docker.exposedByDefault=false'
- '--providers.docker.watch=true'
- '--providers.file.watch=true'
- '--providers.file.filename=/rules.yml'
- '--certificatesresolvers.basic.acme.tlschallenge=true'
- '--certificatesresolvers.basic.acme.email=${EMAIL}'
- '--certificatesresolvers.basic.acme.storage=/letsencrypt/acme.json'
- '--serversTransport.insecureSkipVerify=true'
speedtest-tracker:
image: 'ghcr.io/alexjustesen/speedtest-tracker:latest'
container_name: speedtest-tracker
hostname: speedtest-tracker
ports:
- '8088:80'
- '4443:443'
env_file:
- .env
environment:
- 'TZ=${TZ}'
- com.ouroboros.enable=true
- OOKLA_EULA_GDPR=true
- PUID=1000
- PGID=1000
- SSL_MODE=mixed
volumes:
- './speedtest-tracker/config/:/config'
restart: unless-stopped
labels:
- com.ouroboros.enable=true
- traefik.enable=true
- traefik.http.routers.speedtest_https.entrypoints=web-secure
- 'traefik.http.routers.speedtest_https.rule=Host(`speedtest.${ZONE}`)'
- traefik.http.routers.speedtest_https.tls=true
- traefik.http.routers.speedtest_https.tls.certresolver=basic
- traefik.http.services.speedtest.loadbalancer.server.port=443
- traefik.http.routers.speedtest_https.middlewares=fauth
- traefik.http.services.speedtest.loadbalancer.server.scheme=https
speedtest:
image: 'henrywhitaker3/speedtest-tracker'
container_name: speedtest
hostname: speedtest
ports:
- '8765:80'
env_file:
- .env
environment:
- 'TZ=${TZ}'
- com.ouroboros.enable=true
- OOKLA_EULA_GDPR=true
volumes:
- './speedtest/:/config'
restart: unless-stopped
labels:
- com.ouroboros.enable=true
- traefik.enable=true
- traefik.http.routers.speed_https.entrypoints=web-secure
- 'traefik.http.routers.speed_https.rule=Host(`speed.${ZONE}`)'
- traefik.http.routers.speed_https.tls=true
- traefik.http.routers.speed_https.tls.certresolver=basic
- traefik.http.services.speed.loadbalancer.server.port=443
- traefik.http.routers.speed_https.middlewares=fauth
logging:
driver: "json-file"
options:
max-file: "10"
max-size: "200k"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment