services: restreamer-ui: # NOTA: Primero compila con: yarn build # Luego construye la imagen con: docker build --tag restreamer-ui-v2:latest . # O usa el script: build-docker.bat image: restreamer-ui-v2:latest container_name: restreamer-ui restart: unless-stopped ports: - "3000:3000" environment: # ── Restreamer Core ──────────────────────────────────────────────────── # URL del Core al que se conecta la UI. Dejar vacío para auto-detectar # desde window.location (cuando la UI está embebida dentro del Core). CORE_ADDRESS: "https://restreamer.nextream.sytes.net" # ── yt-dlp / stream extractor ────────────────────────────────────────── # Host:puerto del servicio extractor (usado por Caddy para reverse_proxy). # Caddy expondrá el servicio en http://localhost:3000/yt-stream/ YTDLP_HOST: "100.73.244.28:8080" # YTDLP_URL: URL completa del servicio yt-dlp vista desde el NAVEGADOR. # Dejar vacío → la UI usará /yt-stream/ (Caddy proxy, mismo origen = sin CORS). YTDLP_URL: "" # ── Facebook OAuth2 microserver ──────────────────────────────────────── # Dejar vacío → Caddy proxy /fb-server → localhost:3002 (sin CORS) FB_SERVER_URL: "" # URL EXACTA registrada en Facebook como "Valid OAuth Redirect URI" # Debe coincidir con lo que tienes en developers.facebook.com FB_OAUTH_CALLBACK_URL: "https://djmaster.nextream.sytes.net/oauth/facebook/callback.htm" # URL EXACTA registrada en Google Console como "Authorized redirect URI" # Debe coincidir con lo que tienes en console.cloud.google.com YT_OAUTH_CALLBACK_URL: "https://djmaster.nextream.sytes.net/oauth2callback" # Clave de cifrado para tokens almacenados (cámbiala en producción) FB_ENCRYPTION_SECRET: "restreamer-ui-fb-secret-key-32x!" # ── WebRTC Relay → FFmpeg → RTMP ────────────────────────────────────── # Host del Restreamer Core para el relay RTMP (en Docker = nombre del servicio) # Si la UI corre junto al Core en la misma red Docker, usar el service name. # Si corre independiente, apuntar a la IP/hostname del Core. RTMP_HOST: "restreamer.nextream.sytes.net" RTMP_PORT: "1935" RTMP_APP: "live" # ── LiveKit ──────────────────────────────────────────────────────────── # Credenciales del servidor LiveKit (self-hosted o LiveKit Cloud) LIVEKIT_API_KEY: "APIBTqTGxf9htMK" LIVEKIT_API_SECRET: "0dOHWPffwneaPg7OYpe4PeAes21zLJfeYJB9cKzSTtXW" LIVEKIT_WS_URL: "wss://livekit-server.nextream.sytes.net" volumes: # Persistencia de tokens OAuth2 (Facebook, YouTube, etc.) - restreamer-ui-fb-data:/data/fb # devices: # - "/dev/video1:/dev/video1" # Descomentar si hay cámara USB disponible volumes: restreamer-ui-fb-data: driver: local