services: application: labels: - "traefik.enable=true" - "traefik.http.routers.application-http.entrypoints=web" - "traefik.http.routers.application-http.rule=Host(`laravel.localhost`)" - "traefik.http.routers.application-http.service=application" - "traefik.http.services.application.loadbalancer.server.port=9000" vite: labels: - "traefik.enable=true" - "traefik.http.routers.vite-http.entrypoints=vite" - "traefik.http.routers.vite-http.rule=Host(`laravel.localhost`)" - "traefik.http.routers.vite-http.service=vite" - "traefik.http.services.vite.loadbalancer.server.port=5173" reverb: labels: - "traefik.enable=true" - "traefik.http.routers.reverb-http.entrypoints=web" - "traefik.http.routers.reverb-http.rule=Host(`laravel.localhost`) && PathPrefix(`/app`)" - "traefik.http.services.reverb.loadbalancer.server.port=8080" reverse-proxy: image: traefik:3.5 command: - "--accesslog" - "--api.insecure=true" - "--providers.docker=true" - "--providers.docker.exposedbydefault=false" - "--entrypoints.web.address=:80" - "--entrypoints.vite.address=:5173" - "--entrypoints.traefik.address=:8888" - "--providers.file.watch=true" - "--api.dashboard=true" ports: - "80:80" - "5173:5173" - "8888:8888" volumes: - /var/run/docker.sock:/var/run/docker.sock