Global SEGMENT_TIME_SEC varsayılanı 900->300 (docker-compose, .env.example, env.ts, signal_detection.py fallback'i) — kanal bazlı override zaten panelden ayarlanabiliyordu, bu sadece varsayılanı değiştiriyor. Dashboard'daki kanal listesi tablo yerine kart-grid: her kanal kendi kartında, durum rozetleri üstte belirgin, aksiyonlar altta — önceki tablo düzeni (özellikle aksiyon sütunundaki sıkışık butonlar) okunması zor bulunuyordu. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
64 lines
2.8 KiB
Bash
64 lines
2.8 KiB
Bash
# Local dev (running services directly on the host) uses localhost.
|
||
# docker-compose overrides DATABASE_URL/REDIS_URL/SHARED_MEDIA_ROOT to
|
||
# internal container hostnames — see infra/docker-compose.yml.
|
||
DATABASE_URL=postgresql://streamclipper:streamclipper@localhost:5432/streamclipper
|
||
REDIS_URL=redis://localhost:6379
|
||
SHARED_MEDIA_ROOT=./shared-media
|
||
|
||
# Canlı yayın tespiti yt-dlp ile yapılıyor (bkz. youtubePolling.ts) —
|
||
# YouTube Data API key gerekmiyor.
|
||
OPENAI_API_KEY=
|
||
TELEGRAM_BOT_TOKEN=
|
||
TELEGRAM_CHAT_ID=
|
||
|
||
POLL_INTERVAL_MS=60000
|
||
SEGMENT_TIME_SEC=300
|
||
API_DAEMON_PORT=4001
|
||
|
||
# Signs the panel's login session cookies (frontend). Generate with:
|
||
# openssl rand -base64 32
|
||
# Required in production (docker-compose fails to start without it) — a
|
||
# fixed insecure default is only used for local dev when unset.
|
||
SESSION_SECRET=
|
||
|
||
# Set to a live YouTube URL to bypass the 60s polling loop and start
|
||
# capturing immediately — useful for testing the pipeline without waiting
|
||
# for a real scheduled stream.
|
||
FORCE_LIVE_URL=
|
||
|
||
# YouTube cookies (Netscape cookies.txt content) are configured from the
|
||
# panel's /settings page, not here — they rotate every few hours and are
|
||
# stored in the app_settings table so they can be updated without a
|
||
# redeploy. Use a throwaway/secondary Google account, not your main one —
|
||
# it's a live session credential.
|
||
|
||
# URL of a bgutil-ytdlp-pot-provider HTTP server (see docker-compose.yml
|
||
# sc_pot_provider). Needed alongside cookies to avoid YouTube's "The page
|
||
# needs to be reloaded" proof-of-origin token check. In docker-compose this
|
||
# is auto-set to http://sc_pot_provider:4416; leave blank for local dev
|
||
# unless you're running the provider yourself.
|
||
YTDLP_POT_PROVIDER_URL=
|
||
|
||
# Residential/ISP proxy (http://user:pass@host:port) for yt-dlp calls.
|
||
# Datacenter server IPs get progressively more flagged the more they're
|
||
# used for yt-dlp requests — a clean residential/ISP IP avoids that. Use an
|
||
# ISP proxy product specifically (e.g. Oxylabs "ISP Proxies"), not a plain
|
||
# datacenter proxy — the latter has the same problem as the server itself.
|
||
PROXY_URL=
|
||
|
||
# Processed raw recordings (raw_segments) older than this get auto-deleted
|
||
# (DB row + file) — PRD's auto-purge lifecycle. Only segments already fully
|
||
# analyzed (no candidate still waiting on STT) are eligible.
|
||
RAW_SEGMENT_TTL_HOURS=24
|
||
|
||
# Video render (yüz takibi + 9:16 crop + altyazı) her segment/stt-scoring
|
||
# işinden çok daha ağır — düşük tutulur ki aynı anda birden fazla render
|
||
# worker container'ını boğmasın.
|
||
VIDEO_RENDER_CONCURRENCY=2
|
||
|
||
# api-daemon'ın durdur/zorla-başlat/render-tetikle gibi durum-değiştiren
|
||
# endpoint'lerini korur (bu daemon'ın portu Coolify'de public'e açık).
|
||
# frontend ve api-daemon aynı değeri kullanmalı. Generate: openssl rand -hex 24
|
||
# Boş bırakılırsa (sadece local dev için) bu endpoint'ler korumasız kalır.
|
||
INTERNAL_API_TOKEN=
|