LiveKit: jeden port UDP dla wszystkich (mux) zamiast zakresu
Deploy PROD / deploy (push) Failing after 0s

Zakres port_range 50000-50100 rezerwowal osobny port na kazde polaczenie.
Test z 200 botami wszedl dokladnie w 49, a log serwera pokazal kandydata
UDP tylko przy 52 polaczeniach i TCP przy wszystkich 204: kolejni
uczestnicy dostawali juz tylko TCP. Zmienna UDP_PORT z zakresem nie
wlaczala muxa, bo przegrywala z zakresem z pliku.

Teraz udp_port: 7882 (sprawdzone lokalnie: rtc.portUDP Start 7882, End 0),
nowa zmienna LIVEKIT_UDP_PORT, zeby stara LIVEKIT_UDP_RANGE w .env nie
mogla przywrocic zakresu.

Automatyczne wdrozenie nie dotyka profilu livekit: kontener trzeba
przeladowac recznie.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-09-28 09:16:01 +02:00
parent 515d9a41e2
commit c53ad95104
7 changed files with 57 additions and 37 deletions
+9 -10
View File
@@ -114,11 +114,11 @@ services:
- ./livekit/livekit.yaml:/etc/livekit.yaml:ro
environment:
LIVEKIT_KEYS: "${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET}"
# Zakres portow UDP. Ma pierwszenstwo przed wartoscia w livekit.yaml,
# bo serwer nie rozwija zmiennych w pliku konfiguracyjnym. Instancja,
# ktora musi ominac porty zajete w systemie (na Windows sa rezerwacje
# Hyper-V), zmienia wylacznie LIVEKIT_UDP_RANGE w .env.
UDP_PORT: ${LIVEKIT_UDP_RANGE:-50000-50100}
# Jeden port UDP dla wszystkich uczestnikow (tryb mux), opis
# w livekit.yaml. Ma pierwszenstwo przed wartoscia z pliku, bo serwer nie
# rozwija zmiennych w pliku konfiguracyjnym. Instancja z zajetym portem
# zmienia wylacznie LIVEKIT_UDP_PORT w .env.
UDP_PORT: ${LIVEKIT_UDP_PORT:-7882}
# Adres rozglaszany uczestnikom. Przy uruchomieniu lokalnym ustaw
# NODE_IP=127.0.0.1 w .env: bez tego serwer rozglasza publiczny adres
# lacza, a przegladarka na tej samej maszynie nie zestawi polaczenia.
@@ -129,11 +129,10 @@ services:
# RTC po TCP: droga zapasowa, gdy UDP jest zablokowane w sieci klienta
- "${LIVEKIT_TCP_PORT:-7881}:7881"
# media po UDP. To jest **glowna** droga ruchu audio i wideo:
# bez tego zakresu uczestnicy widza sie, ale sie nie slysza
# Ten sam zakres po obu stronach: UDP_PORT ustawia go wewnatrz
# kontenera, wiec mapowanie musi go odwzorowac jeden do jednego.
# Rozjechanie stron konczy sie bledem "invalid ranges specified".
- "${LIVEKIT_UDP_RANGE:-50000-50100}:${LIVEKIT_UDP_RANGE:-50000-50100}/udp"
# bez tego portu uczestnicy widza sie, ale sie nie slysza.
# Ten sam numer po obu stronach: UDP_PORT ustawia go wewnatrz kontenera,
# a serwer rozglasza uczestnikom wlasnie ten numer.
- "${LIVEKIT_UDP_PORT:-7882}:${LIVEKIT_UDP_PORT:-7882}/udp"
# TURN: przekazuje ruch, gdy polaczenie bezposrednie jest niemozliwe.
#