Files
screenclipper/docker-compose.yml
T
ayrisdevandClaude Sonnet 5 8a92b9b019 feat: panelden video izleme/indirme/silme + eşzamanlı yayın kapasitesi düzeltmesi
- streamIngest worker concurrency 3'ten sabit değildi, artık
  MAX_CONCURRENT_CAPTURES (varsayılan 10) ile ayarlanabiliyor. Eskiden
  3'ten fazla kanal aynı anda canlıya geçerse fazlası, ilk 3'ten biri
  bitene kadar (saatlerce) hiç kayda alınmıyordu.
- Python worker'larda (signal-detection, stt-scoring) bullmq varsayılan
  concurrency'si 1'di — WORKER_CONCURRENCY (varsayılan 5) ile
  paralelleştirildi, birden fazla kanal aynı anda segment/transkript
  üretirse sıraya takılmasın diye.
- Frontend artık shared-media volume'üne bağlı: /api/segments/[id]/video
  route'u Range destekli video stream/indirme sağlıyor. Segment ve
  kanal detay sayfalarına <video> oynatıcı, indirme linki ve onaylı
  silme (RawSegment + CandidateSegment, dosya dahil) eklendi.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-30 18:33:33 +03:00

94 lines
2.5 KiB
YAML

services:
sc_redis:
image: redis:7-alpine
restart: unless-stopped
ports:
- "6379:6379"
volumes:
- redis-data:/data
sc_postgres:
image: postgres:16-alpine
restart: unless-stopped
environment:
POSTGRES_USER: streamclipper
POSTGRES_PASSWORD: streamclipper
POSTGRES_DB: streamclipper
ports:
- "5432:5432"
volumes:
- postgres-data:/var/lib/postgresql/data
sc_pot_provider:
image: brainicism/bgutil-ytdlp-pot-provider
restart: unless-stopped
sc_api_daemon:
build:
context: .
dockerfile: apps/api-daemon/Dockerfile
restart: unless-stopped
environment:
REDIS_URL: redis://sc_redis:6379
DATABASE_URL: postgresql://streamclipper:streamclipper@sc_postgres:5432/streamclipper
SHARED_MEDIA_ROOT: /shared-media
POLL_INTERVAL_MS: ${POLL_INTERVAL_MS:-60000}
SEGMENT_TIME_SEC: ${SEGMENT_TIME_SEC:-900}
API_DAEMON_PORT: ${API_DAEMON_PORT:-4001}
FORCE_LIVE_URL: ${FORCE_LIVE_URL:-}
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:-}
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-}
YTDLP_COOKIES_B64: ${YTDLP_COOKIES_B64:-}
YTDLP_POT_PROVIDER_URL: http://sc_pot_provider:4416
MAX_CONCURRENT_CAPTURES: ${MAX_CONCURRENT_CAPTURES:-10}
volumes:
- shared-media:/shared-media
ports:
- "4001:4001"
depends_on:
- sc_redis
- sc_postgres
- sc_pot_provider
sc_heavy_worker:
build:
context: .
dockerfile: apps/worker/Dockerfile
restart: unless-stopped
environment:
REDIS_URL: redis://sc_redis:6379
DATABASE_URL: postgresql://streamclipper:streamclipper@sc_postgres:5432/streamclipper
SHARED_MEDIA_ROOT: /shared-media
SEGMENT_TIME_SEC: ${SEGMENT_TIME_SEC:-900}
OPENAI_API_KEY: ${OPENAI_API_KEY:-}
TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN:-}
TELEGRAM_CHAT_ID: ${TELEGRAM_CHAT_ID:-}
WORKER_CONCURRENCY: ${WORKER_CONCURRENCY:-5}
volumes:
- shared-media:/shared-media
depends_on:
- sc_redis
- sc_postgres
sc_frontend:
build:
context: .
dockerfile: apps/frontend/Dockerfile
restart: unless-stopped
environment:
DATABASE_URL: postgresql://streamclipper:streamclipper@sc_postgres:5432/streamclipper
API_DAEMON_URL: http://sc_api_daemon:4001
SHARED_MEDIA_ROOT: /shared-media
volumes:
- shared-media:/shared-media
ports:
- "3000:3000"
depends_on:
- sc_postgres
- sc_api_daemon
volumes:
redis-data:
postgres-data:
shared-media: