version: '3.4' networks: traefik: external: true services: ##################### ## Proxy container ## ##################### ## One of the major contributing guides here. ## https://www.digitalocean.com/community/tutorials/how-to-use-traefik-as-a-reverse-proxy-for-docker-containers-on-ubuntu-16-04 proxy: image: traefik:alpine command: --api --docker --docker.domain=docker.localhost --logLevel=DEBUG networks: traefik: ipv4_address: 10.5.1.100 ports: - target: 80 published: 80 mode: host - target: 443 published: 443 mode: host expose: - 8080 volumes: - /var/run/docker.sock:/var/run/docker.sock - ./traefik.toml:/traefik.toml ## This is going to be stored by default in the following host dir in staging. # There is a rate limit for how many issuances you can request per week. # Because of this we will store the acme.json file persistently. # In production we are going to need to figure out how it'll work with Kubernetes or variant. - ./traefik/:/opt/traefik/ labels: # https://docs.traefik.io/user-guide/docker-and-lets-encrypt/ - "traefik.backend=proxy" - "traefik.docker.network=traefik" ## Make sure that you either set the .env variable included in this repository or replace the domain string below. ## Also your DNS record will need to exist pointing at the machine your Traefik Reverse Proxy will be hosted on before you launch this app cluster. - "traefik.frontend.rule=Host:monitor.${DOMAIN}" - "traefik.expose=true" - "traefik.port=8080" healthcheck: test: ["CMD", "traefik", "healthcheck"] timeout: 10s retries: 3