Traefik with docker backend leads to bad gateway

So I managed to get an answer thanks to the terrific traefik slack channel!

So my containers are all in the same docker network including my traefik container.

The problem is that I mapped all my containers port to be accessible from the host machine.

Instead I should have only mapped traefik ports to the host machine and just exposed the ports of my web services containers so that traefik can listen to them inside the docker network where they are all in.

Change : - add expose - change traefik.port

I just had to do this changes in my docker-compose.yml:

version: '2'
services:

  traefik:
    restart: always
    image: traefik
    container_name: traefik
    ports:
      - '80:80'
      - '443:443'
      - '8080:8080'
    labels:
      - 'traefik.enable=true'
      - 'traefik.docker.network=dockerplatform_default'
      - 'traefik.port=8080'
      - 'traefik.frontend.rule=Host:traefik.mydomain.com'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - ./traefik:/etc/traefik

  plex:
    image: linuxserver/plex
    container_name: plex
    environment:
      - VERSION=latest
      - PUID=1000
      - PGID=1000
      - TZ=TZ
    labels:
      - 'traefik.enable=true'
      - 'traefik.docker.network=dockerplatform_default'
      - 'traefik.port=32400'
      - 'traefik.frontend.rule=Host:plex.mydomain.com' 
    #ports:
    #  - '9001:32400'
    expose:
      - 32400
    volumes:
      - 'plex:/config'
      - 'plex_transcode:/transcode'
      - '/home/downloader/Downloads:/data/'

  plexpy:
    image: linuxserver/plexpy
    container_name: plexpy
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=TZ
    labels:
      - 'traefik.enable=true'
      - 'traefik.docker.network=dockerplatform_default'
      - 'traefik.port=8181'
      - 'traefik.frontend.rule=Host:plexpy.mydomain.com' 
    #ports:
    #  - '9002:8181'
    expose:
      - 8181
    volumes:
      - 'plexpy:/config'

  transmission:
    image: linuxserver/transmission
    container_name: transmission
    environment:
      - PGID=1000
      - PUID=1000
      - TZ=TZ
    labels:
      - 'traefik.enable=true'
      - 'traefik.docker.network=dockerplatform_default'
      - 'traefik.port=9091'
      - 'traefik.frontend.rule=Host:bt.mydomain.com' 
    #ports:
    #  - '9003:9091'
    #  - '51413:51413'
    #  - '51413:51413/udp'
    expose:
      - 9091
      - 51413
    volumes:
      - 'transmission:/config'
      - '/home/downloader/Downloads:/downloads'
      - '/home/downloader/Downloads:/watch'

volumes:
  plex:
    driver: local
  plex_transcode:
    driver: local
  plexpy:
    driver: local
  transmission:
    driver: local