Traefik in docker-compose redirection

Hi, I have a local Traefik setup using docker-compose and a traefik.yaml configuration file, I can access the Traefik dashboard, but I'm unable to reach my web application at web.local, to be honest, I have very limited knowledge of network configuration, could someone please explain what I might be doing wrong?

my docker-compose :

services:
  web:
    build:
      context: .
      dockerfile: Dockerfile
    image: my_web_image
    depends_on:
      db:
        condition: service_healthy
    networks:
      - webnet
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: exampledb
      MYSQL_USER_FILE: /run/secrets/db_user
      MYSQL_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_user
      - db_password
    volumes:
      - ./public-html/:/var/www/html/
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.web.rule=Host(`web.local`)"
      #- "traefik.http.routers.web.entrypoints=websecure"
      - "traefik.http.routers.web.entrypoints=web"
      - "traefik.http.services.web.loadbalancer.server.port=80"
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost/"]
      interval: 30s
      timeout: 10s
      retries: 3

  db:
    image: mysql:8.0
    restart: always
    networks:
      - webnet
    volumes:
      - db_data:/var/lib/mysql
      - ./db-init:/docker-entrypoint-initdb.d
    environment:
      MYSQL_ROOT_PASSWORD_FILE: /run/secrets/db_root_password
      MYSQL_DATABASE: exampledb
      MYSQL_USER_FILE: /run/secrets/db_user
      MYSQL_PASSWORD_FILE: /run/secrets/db_password
    secrets:
      - db_root_password
      - db_user
      - db_password
    labels:
      - "traefik.enable=false"
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-h", "localhost", "--silent"]
      interval: 30s
      timeout: 10s
      retries: 5

  traefik:
    image: traefik:v3.0
    command:
      - "--configFile=/traefik/traefik.yaml"
    labels:
      - "traefik.http.routers.api.rule=Host(`localhost`)"
      - "traefik.http.routers.api.service=api@internal"
      - "traefik.http.routers.api.entrypoints=web"
    ports:
      - "80:80"
      - "443:443"
      - "8080:8080"  # Traefik dashboard
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock:ro
      - ./traefik/traefik.yml:/traefik.yml
      - ./traefik/acme.json:/acme.json
    networks:
      - webnet

networks:
  webnet:
    driver: bridge
    external: true
volumes:
  db_data:

secrets:
  db_root_password:
    file: ./secrets/db_root_password.txt
  db_user:
    file: ./secrets/db_user.txt
  db_password:
    file: ./secrets/db_password.txt

and my traefik.yaml

api:
  dashboard: true
  insecure: true

entryPoints:
  web:
    address: ":80"
  websecure:
    address: ":443"
  traefik:
    address: ":8080"

providers:
  docker:
    exposedByDefault: false
    endpoint: "unix:///var/run/docker.sock"
    watch: true
    network: webnet

log:
  level: DEBUG

accessLog: {}

You have created a solution for your browser to resolve web.local to the right IP?