# docker-dev companion to scripts/install/traefik-dynamic.yml. Routes the single # central cluster UI on the shared Compose network: # # - Central UI (only route): PathPrefix(`/`) → central-1 / central-2. # # The driver-only site nodes serve no UI, so they have no Traefik route — the # central cluster manages and deploys to them over the shared Akka mesh. http: routers: otopcua-admin: entryPoints: ["web"] rule: "PathPrefix(`/`)" service: otopcua-admin services: otopcua-admin: loadBalancer: # Blazor Server uses SignalR; the WebSocket upgrade must hit the same # backend that owns the circuit ID. Sticky cookie keeps each session # pinned to one node so the post-handshake WebSocket doesn't 404. sticky: cookie: name: otopcua_lb httpOnly: true sameSite: lax servers: - url: "http://central-1:9000" - url: "http://central-2:9000" healthCheck: path: /health/active interval: 5s timeout: 2s