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) <noreply@anthropic.com>
This commit is contained in:
Jeff Emmett 2026-03-24 06:18:16 +00:00
parent aa4c08a1b1
commit 90f55bef9f
3 changed files with 3 additions and 3 deletions

View File

@ -7,7 +7,7 @@ services:
restart: unless-stopped restart: unless-stopped
environment: environment:
- NEXT_PUBLIC_RDESIGN_API_URL=https://scribus.rspace.online - 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_LLM_API_URL=https://llm.jeffemmett.com
- NEXT_PUBLIC_ENCRYPTID_SERVER_URL=https://auth.ridentity.online - NEXT_PUBLIC_ENCRYPTID_SERVER_URL=https://auth.ridentity.online
- ENCRYPTID_SERVER_URL=https://auth.ridentity.online - ENCRYPTID_SERVER_URL=https://auth.ridentity.online

View File

@ -5,7 +5,7 @@ import { Header } from '@/components/Header';
import { DesignAssistant } from '@/components/DesignAssistant'; import { DesignAssistant } from '@/components/DesignAssistant';
import { Maximize2, Minimize2, ExternalLink, RefreshCw } from 'lucide-react'; 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() { export default function StudioPage() {
const [fullscreen, setFullscreen] = useState(false); const [fullscreen, setFullscreen] = useState(false);

View File

@ -66,7 +66,7 @@ su - designer -c "export DISPLAY=:1 && scribus" &
# Create index.html redirect for noVNC # Create index.html redirect for noVNC
cat > /usr/share/novnc/index.html <<'INDEXEOF' cat > /usr/share/novnc/index.html <<'INDEXEOF'
<!DOCTYPE html> <!DOCTYPE html>
<html><head><meta http-equiv="refresh" content="0;url=vnc.html?autoconnect=true&resize=scale"></head></html> <html><head><meta http-equiv="refresh" content="0;url=vnc.html?autoconnect=true&resize=scale&path=vnc/websockify"></head></html>
INDEXEOF INDEXEOF
# Start noVNC (websockify bridge) # Start noVNC (websockify bridge)