Migrate to Chromium, unified VNC, thumbnails, autologin CDP detection

---

- Migrado base Docker de ubuntu:22.04 + Google Chrome para debian:bookworm-slim + Chromium
- Dockerfile refatorado com multi-stage build (node:22-alpine builder + debian runtime) e single RUN layer para imagem menor
- VNC unificado: removido novnc por stream, substituído por websockify global na porta 6080 com token-based routing
- Implementado sistema de thumbnails por stream via ffmpeg (captura do HLS) com endpoint GET/POST e atualização no card
- Autologin reescrito com detecção via Chrome DevTools Protocol: pula credenciais se já autenticado
- Adicionado padrão desiredState (running/stopped) persistido no JSON, restaurado via restore-streams.sh ao reiniciar container
- UI traduzida para inglês, formulário reorganizado com tooltips, seção avançada colapsável e GOP automático
- Player simplificado: modos HLS e HTML unificados, removido modo m3u8 separado
- Adicionado campo threads no ffmpeg; suporte a seccomp:unconfined no docker-compose

---
This commit is contained in:
2026-04-24 23:08:42 -03:00
parent 30b0597380
commit 1f8385e450
29 changed files with 1084 additions and 5412 deletions
+14
View File
@@ -36,5 +36,19 @@ stderr_logfile=/app/data/logs/nextjs.log
# Cada stream gera /app/data/streams/{id}/stream.conf
# O supervisord inclui todos automaticamente
[program:novnc]
command=websockify --web /usr/share/novnc --target-config /app/data/vnc-tokens 6080
autorestart=true
priority=3
stdout_logfile=/app/data/logs/novnc.log
stderr_logfile=/app/data/logs/novnc.log
[program:restore-streams]
command=/opt/scripts/restore-streams.sh
autorestart=false
priority=4
stdout_logfile=/app/data/logs/restore.log
stderr_logfile=/app/data/logs/restore.log
[include]
files = /app/data/streams/*/stream.conf