Files
akademiawodociagowca/livekit/livekit.yaml
T
2026-09-02 08:21:27 +02:00

79 lines
3.1 KiB
YAML

# Konfiguracja serwera LiveKit.
#
# Klucze API nie sa tutaj: podaje je zmienna LIVEKIT_KEYS w docker-compose,
# zeby nie trzymac sekretow w pliku wchodzacym do repozytorium.
port: 7880
rtc:
# Zakres portow UDP.
#
# **Serwer NIE rozwija zmiennych srodowiskowych w tym pliku**, wiec wartosci
# sa tu wpisane wprost. Zakres przekazywany jest dodatkowo zmienna UDP_PORT
# w docker-compose i to ona ma pierwszenstwo: dzieki temu instancja, ktora
# musi ominac porty zajete w systemie, zmienia jedna wartosc w .env,
# zamiast edytowac ten plik.
#
# Musi zgadzac sie z mapowaniem portow w docker-compose i byc otwarty
# na firewallu. To jest glowna droga ruchu audio i wideo.
port_range_start: 50000
port_range_end: 50100
tcp_port: 7881
# Adres, ktory serwer rozglasza uczestnikom jako swoj.
#
# `use_external_ip: true` na produkcji: serwer sam wykrywa adres publiczny,
# bo bez tego rozglaszalby adres wewnetrzny kontenera.
#
# **Przy uruchomieniu lokalnym trzeba to wylaczyc i podac 127.0.0.1**
# zmienna NODE_IP: inaczej serwer rozglasza publiczny adres lacza, a
# przegladarka na tej samej maszynie probuje sie tam polaczyc i nie dochodzi
# do wymiany mediow. Objawia sie to tak, ze uczestnik dolacza do pokoju
# i widzi liste obecnych, ale nie slyszy i nie widzi nikogo.
#
# UWAGA: `use_external_ip: true` **nadpisuje** zmienna NODE_IP. Przy
# uruchomieniu lokalnym trzeba ustawic tu `false`, inaczej serwer i tak
# wykryje publiczny adres lacza i zignoruje 127.0.0.1.
use_external_ip: false
# Kandydaci ICE rozglaszani takze po TCP.
#
# Media ida normalnie po UDP, ale przy uruchomieniu lokalnym w Dockerze
# kontener Egress i przegladarka na hoscie widza serwer pod **roznymi
# adresami**: przegladarka pod 127.0.0.1, Egress pod adresem kontenera.
# Serwer rozglasza jeden adres (NODE_IP), wiec jedna z tych stron nie
# zestawi polaczenia po UDP.
#
# TCP jest tu droga wspolna: dziala niezaleznie od tego, ktory adres
# zostal rozgloszony, bo polaczenie zestawia sie na porcie 7881, do ktorego
# obie strony docieraja. Na produkcji, gdzie serwer ma jeden adres publiczny,
# ta opcja nie jest potrzebna, ale nie szkodzi: TCP zostaje droga zapasowa
# dla uczestnikow za firewallem blokujacym UDP.
use_ice_lite: false
# TURN: przekazywanie ruchu dla uczestnikow za restrykcyjnym NAT-em.
# Serwer coturn stoi obok, w tym samym profilu.
turn:
enabled: false
# Redis: kanal do Egress.
#
# **Wymagany do nagrywania.** Serwer wrzuca tu zadanie nagrania, a Egress je
# odbiera; bez Redisa serwer przyjmuje zadanie, nie ma go komu przekazac
# i nagrywanie konczy sie timeoutem, mimo ze sam serwer dziala poprawnie.
#
# Do samych spotkan Redis nie jest potrzebny: serwer w trybie jednowezlowym
# radzi sobie bez niego. Adres wskazuje usluge z tego samego profilu.
redis:
address: redis:6379
# Logi czyta administrator w terminalu, wiec bez nadmiaru szczegolow.
logging:
level: info
json: false
# Pokoj znika po wyjsciu ostatniego uczestnika. Nie trzymamy pustych pokoi:
# webinar konczy sie raz, a pusty pokoj zajmowalby pamiec do restartu serwera.
room:
empty_timeout: 300
max_participants: 0