From 3694d4a7d6e5f164a80de68e569603e424c9e22b Mon Sep 17 00:00:00 2001 From: hsiegeln <37154749+hsiegeln@users.noreply.github.com> Date: Sun, 5 Apr 2026 17:48:11 +0200 Subject: [PATCH] fix: use server.localhost subdomain for server-ui (same /assets conflict) Server UI assets also use absolute /assets/* paths that conflict with the SPA catch-all. Same fix as Logto: Host-based routing at server.localhost gives it its own namespace. Co-Authored-By: Claude Opus 4.6 (1M context) --- docker-compose.yml | 4 +--- ui/src/components/Layout.tsx | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index 8ecf426..78f276c 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -170,10 +170,8 @@ services: CAMELEER_API_URL: http://cameleer3-server:8081 labels: - traefik.enable=true - - traefik.http.routers.server-ui.rule=PathPrefix(`/server`) + - traefik.http.routers.server-ui.rule=Host(`server.${PUBLIC_HOST:-localhost}`) - traefik.http.routers.server-ui.service=server-ui - - traefik.http.routers.server-ui.middlewares=server-ui-strip - - traefik.http.middlewares.server-ui-strip.stripprefix.prefixes=/server - traefik.http.services.server-ui.loadbalancer.server.port=80 networks: - cameleer diff --git a/ui/src/components/Layout.tsx b/ui/src/components/Layout.tsx index a21ccd0..9454afd 100644 --- a/ui/src/components/Layout.tsx +++ b/ui/src/components/Layout.tsx @@ -162,7 +162,7 @@ export function Layout() { } label="View Dashboard" - onClick={() => window.open('/server/', '_blank', 'noopener')} + onClick={() => window.open(`http://server.${window.location.hostname}`, '_blank', 'noopener')} /> {/* User info + logout */}