From 90f55bef9fcf29e2b627a392fb0129b5ede6d155 Mon Sep 17 00:00:00 2001 From: Jeff Emmett Date: Tue, 24 Mar 2026 06:18:16 +0000 Subject: [PATCH] Fix noVNC WebSocket: add path=vnc/websockify for Traefik routing noVNC defaults to WebSocket path "websockify" relative to origin root, but Traefik only routes /vnc/* to the studio container. Setting path=vnc/websockify ensures the WebSocket goes through the correct Traefik router and gets stripped to /websockify inside the container. Co-Authored-By: Claude Opus 4.6 (1M context) --- docker-compose.yml | 2 +- frontend/src/app/studio/page.tsx | 2 +- studio/start.sh | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yml b/docker-compose.yml index fc03b461..86bc6765 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -7,7 +7,7 @@ services: restart: unless-stopped environment: - NEXT_PUBLIC_RDESIGN_API_URL=https://scribus.rspace.online - - NEXT_PUBLIC_STUDIO_URL=https://scribus.rspace.online/vnc/vnc.html?autoconnect=true&resize=scale + - NEXT_PUBLIC_STUDIO_URL=https://scribus.rspace.online/vnc/vnc.html?autoconnect=true&resize=scale&path=vnc/websockify - NEXT_PUBLIC_LLM_API_URL=https://llm.jeffemmett.com - NEXT_PUBLIC_ENCRYPTID_SERVER_URL=https://auth.ridentity.online - ENCRYPTID_SERVER_URL=https://auth.ridentity.online diff --git a/frontend/src/app/studio/page.tsx b/frontend/src/app/studio/page.tsx index 0f2ef451..1ddc6beb 100644 --- a/frontend/src/app/studio/page.tsx +++ b/frontend/src/app/studio/page.tsx @@ -5,7 +5,7 @@ import { Header } from '@/components/Header'; import { DesignAssistant } from '@/components/DesignAssistant'; import { Maximize2, Minimize2, ExternalLink, RefreshCw } from 'lucide-react'; -const STUDIO_URL = process.env.NEXT_PUBLIC_STUDIO_URL || 'https://scribus.rspace.online/vnc/vnc.html?autoconnect=true&resize=scale'; +const STUDIO_URL = process.env.NEXT_PUBLIC_STUDIO_URL || 'https://scribus.rspace.online/vnc/vnc.html?autoconnect=true&resize=scale&path=vnc/websockify'; export default function StudioPage() { const [fullscreen, setFullscreen] = useState(false); diff --git a/studio/start.sh b/studio/start.sh index 50cbc535..1c96d636 100644 --- a/studio/start.sh +++ b/studio/start.sh @@ -66,7 +66,7 @@ su - designer -c "export DISPLAY=:1 && scribus" & # Create index.html redirect for noVNC cat > /usr/share/novnc/index.html <<'INDEXEOF' - + INDEXEOF # Start noVNC (websockify bridge)