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
+4 -2
View File
@@ -1,16 +1,18 @@
services:
decap-stream:
image: git.kralot.cloud/decap-stream:latest
image: git.kralot.cloud/kralot/decap-stream:latest
container_name: decap-stream
restart: unless-stopped
shm_size: "2gb"
security_opt:
- seccomp:unconfined
environment:
TZ: America/Sao_Paulo
ports:
- "3000:3000" # Web UI
- "1935:1935" # RTMP (MediaMTX)
- "8888:8888" # HLS (MediaMTX)
- "6081:6081" # VNC (noVNC)
- "6080:6080" # VNC (noVNC)
volumes:
- decap-stream:/app/data