http: middlewares: badger: plugin: badger: disableForwardAuth: true redirect-to-https: redirectScheme: scheme: https routers: # HTTP to HTTPS redirect router main-app-router-redirect: rule: "Host(`{{ pangolin_base_domain }}`)" service: next-service entryPoints: - web middlewares: - redirect-to-https - badger # Next.js router (handles everything except API and WebSocket paths) next-router: rule: "Host(`{{ pangolin_base_domain }}`) && !PathPrefix(`/api/v1`)" # REPLACE WITH YOUR DOMAIN service: next-service entryPoints: - websecure middlewares: - badger tls: certResolver: letsencrypt # API router (handles /api/v1 paths) api-router: rule: "Host(`{{ pangolin_base_domain }}`) && PathPrefix(`/api/v1`)" # REPLACE WITH YOUR DOMAIN service: api-service entryPoints: - websecure middlewares: - badger tls: certResolver: letsencrypt # WebSocket router ws-router: rule: "Host(`{{ pangolin_base_domain }}`)" # REPLACE WITH YOUR DOMAIN service: api-service entryPoints: - websecure middlewares: - badger tls: certResolver: letsencrypt services: next-service: loadBalancer: servers: - url: "http://pangolin:3002" # Next.js server api-service: loadBalancer: servers: - url: "http://pangolin:3000" # API/WebSocket server