Our whole setup is using labels, so each service (in its own GIT repo) has its own docker compose and registers itself into the Traefik that routes everything (so no-one needs to touch "traefik's setup directly).
If you would like to see how the mirroring features works I'd like to invite you to see the latest workshop Advanced Load Balancing with Traefik 2.5 where I presented that feature and a few mores.