Files
decap-stream/docker/docker-compose.yml
T
Kralot 8bcc269594 Adiciona env vars de defaults de UI e melhora compatibilidade mobile dos players
---

- Adicionado endpoint GET /api/config que expõe as env vars de defaults para o frontend;
- Adicionadas env vars DEFAULT_PURE_MODE, DEFAULT_OPEN_NEW_TAB, DEFAULT_RELOAD_CLIENT e DEFAULT_RELOAD_CLIENT_TIME ao docker-compose.yml e README.md;
- Na primeira sessão sem global-prefs em localStorage, a UI busca os defaults do servidor via /api/config;
- Adicionado fallback de HLS nativo para iOS Safari em todos os players HTML (Hls.isSupported() → v.src + v.play());
- Substituído AbortSignal.timeout() por AbortController + setTimeout para compatibilidade com iOS ≤ 15;
- Corrigido stall detection falso-positivo: verificação só dispara após currentTime > 0 (vídeo realmente iniciado);
- Adicionado height: 100dvh nos players para corrigir clipping do iOS causado pelo 100vh incluir a chrome bar do browser;
- Adicionado atributo muted no <video> do player /static/[id] para permitir autoplay mobile;
- Adicionado listener de touchstart nos botões flutuantes de Back e Mute para exibição em touch;
- Botão Back do player React ampliado no mobile (px-5 py-3 text-[1.1rem]) para paridade visual com o player HTML;
- Comentários do docker-compose.yml traduzidos para inglês e reorganizados inline;

---
2026-04-28 10:34:04 -03:00

34 lines
1.6 KiB
YAML

services:
decap-stream:
image: ghcr.io/riguettodev/decap-stream:latest
container_name: decap-stream
restart: unless-stopped
shm_size: "1gb"
security_opt:
- seccomp:unconfined
# gpus: all # Uncomment for NVIDIA (nvenc) — requires nvidia-container-toolkit on host
# devices:
# - /dev/dri:/dev/dri # Uncomment for Intel/AMD (vaapi or qsv)
environment:
TZ: America/Sao_Paulo
# AUTH_USER: admin # If set (with AUTH_PASS), enables login
# AUTH_PASS: secure_password
DEFAULT_PURE_MODE: false # Pure mode: raw .m3u8 / minimal player (no UI chrome)
DEFAULT_OPEN_NEW_TAB: false # Open player buttons in a new tab
DEFAULT_RELOAD_CLIENT: false # Auto-reload the client player page
DEFAULT_RELOAD_CLIENT_TIME: 2 # Client auto-reload interval in minutes
# FFMPEG_HWACCEL: nvenc # GPU encoding: nvenc (NVIDIA), vaapi / qsv (Intel/AMD)
# LD_LIBRARY_PATH: /usr/lib/wsl/lib # WSL2 + nvenc only
ports:
- "3000:3000" # Web UI — main entry point
- "127.0.0.1:6080:6080" # noVNC — localhost only; expose via tunnel/VPN for remote access
# - "1935:1935" # RTMP — expose only for external ingest (e.g. OBS)
# - "8888:8888" # HLS — internal only; proxied through Next.js at /api/hls/
volumes:
- streams:/app/data/streams # Persistent: streams.json, chrome profiles, thumbnails
# - ./logs:/app/data/logs # Optional: mount for external log access
# - /usr/lib/wsl/lib:/usr/lib/wsl/lib:ro # WSL2 + nvenc: exposes libnvidia-encode.so.1
volumes:
streams: