404 Page Not Found when access url and dashboard

i have compose like below, when i open in browser for ‘auth.usp.ac.id‘, it show 404 page not found.

services:
traefik:
image: traefik:v3.6.4
container_name: traefik
restart: unless-stopped
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- "80:80"
- "443:443"
volumes:
- /var/run/docker.sock:/var/run/docker.sock:ro
- ./certs:/certs:ro
- ./dynamic:/dynamic:ro
- ./letsencrypt:/letsencrypt
command:
# EntryPoints
- "--entrypoints.web.address=:80"
- "--entrypoints.web.http.redirections.entrypoint.to=websecure"
- "--entrypoints.web.http.redirections.entrypoint.scheme=https"
- "--entrypoints.websecure.address=:443"
- "--entrypoints.websecure.http.tls=true"

  # --- CONFIG BARU: Mengizinkan Encoded Slash (Mencegah Error 400) ---
  - "--entrypoints.websecure.http.encodedCharacters.allowEncodedSlash=true"

  # Providers
  - "--providers.file.filename=/dynamic/tls.yaml"
  - "--providers.docker=true"
  - "--providers.docker.exposedbydefault=false"
  - "--providers.docker.network=proxy"

  # API & Dashboard
  - "--api.dashboard=true"
  - "--api.insecure=false" 

  # Resolver
  - "--certificatesresolvers.le.acme.email=irham.umam@usp.ac.id"
  - "--certificatesresolvers.le.acme.storage=/letsencrypt/acme.json"
  - "--certificatesresolvers.le.acme.httpchallenge.entrypoint=web"

labels:
  - "traefik.enable=true"
  
  # Router Dashboard
  - "traefik.http.routers.dashboard.rule=Host(`auth.usp.ac.id`)"
  - "traefik.http.routers.dashboard.entrypoints=websecure"
  - "traefik.http.routers.dashboard.service=api@internal"
  - "traefik.http.routers.dashboard.tls.certresolver=le"
  
  # Middleware: Auth + Redirect Otomatis (Fix 404)
  - "traefik.http.middlewares.dashboard-auth.basicauth.users=pass"
  - "traefik.http.routers.dashboard.middlewares=dashboard-auth@docker"

whoami:
image: traefik/whoami
container_name: whoami
restart: unless-stopped
networks:
- proxy
labels:
- "traefik.enable=true"
- "traefik.http.routers.whoami.rule=Host(whoami.auth.usp.ac.id)"
- "traefik.http.routers.whoami.entrypoints=websecure"
- "traefik.http.routers.whoami.tls.certresolver=le"
# FIX 404 Whoami: Tentukan port internal
- "traefik.http.services.whoami.loadbalancer.server.port=80"

networks:
proxy:
name: proxy
external: false

help me, thanks all

Format your config with 3 backticks to preserve spacing, which is important in yaml.

Enable Traefik debug log (doc) and Traefik access log in JSON format (doc).

Note that you would usually access the Traefik dashboard with full path /dashboard/ (doc).

Maybe check simple Traefik example.

Note that this creates a false sense of security, as a Docker socket can not be made read-only: