Corrige VNC remoto: proxy via Next.js e fix de hidratação SSR

---

- Adicionado docker/server.mjs, entry point customizado que monkey-patcha http.createServer antes do Next.js standalone subir, injetando handler de upgrade para fazer pipe TCP de WebSocket (ws://host:3000/websockify?token=...) direto para localhost:6080;
- Adicionado src/app/api/novnc/[...path]/route.ts, proxy HTTP dos assets estáticos do noVNC (vnc.html, JS, CSS) para localhost:6080, seguindo o mesmo padrão do proxy HLS;
- Corrigido bug de hidratação SSR em src/app/vnc/[id]/page.tsx: URL do iframe agora é computada apenas client-side via useEffect/useState, usando path relativo /api/novnc/ em vez de http://host:6080/;
- Atualizado config/supervisord.conf para iniciar Next.js com node /opt/server.mjs;
- Atualizado docker/Dockerfile para copiar docker/server.mjs para /opt/server.mjs;

---
This commit is contained in:
2026-04-27 09:18:39 -03:00
parent c5d4eadada
commit 1a164f9138
5 changed files with 74 additions and 5 deletions
+1
View File
@@ -66,6 +66,7 @@ COPY --from=builder /build/public/ /app/public/
COPY config/supervisord.conf /etc/supervisor/supervisord.conf
COPY config/mediamtx.yml /etc/mediamtx.yml
COPY scripts/ /opt/scripts/
COPY docker/server.mjs /opt/server.mjs
COPY docker/entrypoint.sh /entrypoint.sh
RUN chmod +x /opt/scripts/*.sh /entrypoint.sh