From b5d44df705e129777058ff3cc07fa7dbd068d775 Mon Sep 17 00:00:00 2001 From: jonboirama <123874216+jonboirama@users.noreply.github.com> Date: Sat, 14 Mar 2026 17:32:28 +1000 Subject: [PATCH] fix: prefer explicit public gateway websocket url (#325) --- src/app/api/gateways/connect/route.ts | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/app/api/gateways/connect/route.ts b/src/app/api/gateways/connect/route.ts index 2ad9198..c20e5ad 100644 --- a/src/app/api/gateways/connect/route.ts +++ b/src/app/api/gateways/connect/route.ts @@ -174,9 +174,14 @@ export async function POST(request: NextRequest) { return NextResponse.json({ error: 'Gateway not found' }, { status: 404 }) } + // Prefer an explicitly configured browser WebSocket URL when provided. + // This is required for reverse-proxy setups where the browser-facing gateway + // lives on a different host/path than the server-side localhost gateway. + const explicitBrowserWsUrl = String(process.env.NEXT_PUBLIC_GATEWAY_URL || '').trim() + // When gateway host is localhost but the browser is remote (e.g. Tailscale), // resolve the correct browser-accessible WebSocket URL. - const remoteUrl = resolveRemoteGatewayUrl(gateway, request) + const remoteUrl = explicitBrowserWsUrl || resolveRemoteGatewayUrl(gateway, request) const ws_url = remoteUrl || buildGatewayWebSocketUrl({ host: gateway.host, port: gateway.port,