Traefik does not route correctly to apps

Good morning,

I have a Traefik deployed over Docker from docker-compose file.

Traefik docker-compose.yml

version: '3'

services:
  reverse-proxy:
    image: traefik:v2.6
    command:
      - --api.dashboard=true
      - --log.level=INFO
      - --providers.docker
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --entrypoints.web.http.redirections.entryPoint.to=websecure
      - --entrypoints.web.http.redirections.entryPoint.scheme=https
      - --certificatesresolvers.letsencrypt.acme.email=xxx@xxx
      - --certificatesresolvers.letsencrypt.acme.storage=acme.json
      - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
      - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json

    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - le_certs:/letsencrypt
    labels:
      - traefik.enable=true
      - traefik.http.routers.api.entrypoints=websecure
      - traefik.http.routers.api.rule=Host(`xxx.xxx.xxx`)
      - traefik.http.routers.api.tls=true
      - traefik.http.routers.api.tls.certresolver=letsencrypt
      - traefik.http.routers.api.service=api@internal
      - traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)
      - traefik.http.routers.http-catchall.entrypoints=web
      - traefik.http.routers.http-catchall.middlewares=redirect-to-https
      - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https

    restart: always
volumes:
  le_certs:

Web app docker-compose:

services:
  nodejs:
    image: nodejs
    labels:
      - traefi.enable=true
      - traefik.http.routers.fap.rule=Host(`xxx.xxx.xxx`)
      - traefik.http.routers.fap.entrypoints=websecure
      - traefik.http.routers.fap.rule=hostregexp(`{host:.+}`)
      - traefik.http.routers.fap.tls=true
      - traefik.http.routers.fap.tls.certresolver=letsencrypt

I cannot access the web app. If I joiin into the Trafik dashboard, I got the Route, Services set up without any error, but you cannot join into the website because you get "Gateway timeout".

However, if you declare in Traefik docker-compose.yml:

version: '3'
networks:
  default:
    external:
      name: external

services:
  reverse-proxy:
    image: traefik:v2.6
    command:
      - --api.dashboard=true
      - --log.level=INFO
      - --providers.docker
      - --entrypoints.web.address=:80
      - --entrypoints.websecure.address=:443
      - --entrypoints.web.http.redirections.entryPoint.to=websecure
      - --entrypoints.web.http.redirections.entryPoint.scheme=https
      - --certificatesresolvers.letsencrypt.acme.email=xxx@xxx
      - --certificatesresolvers.letsencrypt.acme.storage=acme.json
      - --certificatesresolvers.letsencrypt.acme.httpchallenge.entrypoint=web
      - --certificatesresolvers.letsencrypt.acme.storage=/letsencrypt/acme.json

    ports:
      - "80:80"
      - "443:443"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - le_certs:/letsencrypt
    labels:
      - traefik.enable=true
      - traefik.http.routers.api.entrypoints=websecure
      - traefik.http.routers.api.rule=Host(`xxx.xxx.xxx`)
      - traefik.http.routers.api.tls=true
      - traefik.http.routers.api.tls.certresolver=letsencrypt
      - traefik.http.routers.api.service=api@internal
      - traefik.http.routers.http-catchall.rule=hostregexp(`{host:.+}`)
      - traefik.http.routers.http-catchall.entrypoints=web
      - traefik.http.routers.http-catchall.middlewares=redirect-to-https
      - traefik.http.middlewares.redirect-to-https.redirectscheme.scheme=https

    restart: always
volumes:
  le_certs:

Web app docker-compose.yml

version: "3.9"  # optional since v1.27.0
networks:
  default:
    external:
      name: external
services:
  nodejs:
    image: nodejs
    labels:
      - traefi.enable=true
      - traefik.http.routers.catalogo_pedrosa.rule=Host(`xxx.xxx.xx`)
      - traefik.http.routers.catalogo_pedrosa.entrypoints=websecure
      - traefik.http.routers.catalogo_pedrosa.rule=hostregexp(`{host:.+}`)
      - traefik.http.routers.catalogo_pedrosa.tls=true
      - traefik.http.routers.catalogo_pedrosa.tls.certresolver=letsencrypt

That works. What I am wrong?