# Dev config for LiveKit SFU. Verified against the official documentation # (github.com/livekit/livekit config-sample.yaml + configuration.md). # Real API key/secret must come from .env (LIVEKIT_API_KEY / LIVEKIT_API_SECRET); # this file intentionally omits `keys:` so it can be supplied via the # LIVEKIT_KEYS env var (format "key:secret") set in docker-compose.yml. port: 7880 rtc: tcp_port: 7881 # Диапазон сужен для dev (см. комментарий в docker-compose.yml); в проде # расширить и синхронизировать с пробросом портов. port_range_start: 54000 port_range_end: 54100 # use_external_ip: false + node_ip — dev-режим по докам LiveKit # (rtc.node_ip / use_external_ip в config-sample.yaml): use_external_ip # определяет публичный IP через STUN, что в контейнере Docker Desktop на # macOS даёт недостижимый изнутри хоста внутренний IP (172.18.x.x) — из-за # этого DTLS-хендшейк по reliable/lossy data-каналам не проходит (см. # "dtls timeout" в логах). node_ip: 127.0.0.1 работает, потому что порты # 7881/tcp и 54000-54100/udp проброшены Docker Desktop на loopback хоста, # а браузер-клиент запускается на том же хосте. В проде (клиенты снаружи # хоста) node_ip заменить на реальный внешний IP/домен либо вернуть # use_external_ip: true, если сервер не за NAT с пробросом портов 1:1. use_external_ip: false node_ip: 127.0.0.1 # Redis обязателен для сервиса egress (см. deploy/egress/) — он использует # его как pub/sub и key-value хранилище состояния запущенных записей; # без него egress не может получать room/track-события от LiveKit # (проверено по официальной документации livekit/egress, раздел "Running # locally"). LiveKit сам по себе тоже использует redis для координации # между узлами кластера (здесь один узел, но сервис оставлен включённым). redis: address: redis:6379 # TURN is handled by the standalone coturn service (deploy/coturn) in the # `media` profile. When exposing LiveKit publicly, put coturn/TURN-TLS on 443 # and keep this section disabled to avoid double TURN servers. turn: enabled: false # Webhook-приёмник backend'а: события room_started/participant_joined/ # participant_left/room_finished подписываются ключом api_key, который # должен совпадать с одним из ключей в LIVEKIT_KEYS (см. выше). webhook: api_key: devkey urls: - http://backend:8000/api/v1/livekit/webhook # Если backend запускается на хосте (uvicorn вне docker-compose, а # LiveKit — внутри), используйте вместо этого: # - http://host.docker.internal:8000/api/v1/livekit/webhook logging: level: info json: false # Prometheus metrics (scraped by the monitoring profile). prometheus: port: 6789