Files
lmxopcua/docker-dev/traefik-dynamic.yml

34 lines
1.1 KiB
YAML

# 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