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:
@@ -0,0 +1,22 @@
|
||||
#!/bin/bash
|
||||
# #19 — aguarda supervisord e restaura streams para o desiredState salvo
|
||||
sleep 5
|
||||
|
||||
STREAMS_FILE="/app/data/streams.json"
|
||||
[ -f "$STREAMS_FILE" ] || exit 0
|
||||
|
||||
node -e "
|
||||
const fs = require('fs');
|
||||
const { execSync } = require('child_process');
|
||||
const streams = JSON.parse(fs.readFileSync('$STREAMS_FILE', 'utf-8'));
|
||||
const ctl = (cmd) => { try { execSync('supervisorctl -c /etc/supervisor/supervisord.conf ' + cmd, { stdio: 'pipe' }); } catch {} };
|
||||
|
||||
for (const s of streams) {
|
||||
if (s.desiredState === 'running') {
|
||||
console.log('[restore] starting', s.id);
|
||||
['xvfb','chromium','autologin','x11vnc','ffmpeg'].forEach(p => ctl('start ' + p + '-' + s.id));
|
||||
} else {
|
||||
console.log('[restore] keeping stopped', s.id);
|
||||
}
|
||||
}
|
||||
"
|
||||
Reference in New Issue
Block a user