Backend nie dostawal ani adresu serwera LiveKit, ani kluczy API: brakowalo czterech linii w sekcji `environment`. Bez nich WIDEO NIE DZIALA WCALE, wiec na dzialajacej instancji zmiana byla dopisana recznie i istniala WYLACZNIE w pliku roboczym na serwerze. `git checkout` albo konflikt przy `pull` skasowalby ja bez sladu, a kto odtwarzalby instancje z repozytorium, nie dowiedzialby sie o niej wcale. Komentarze w obu plikach mowily przy tym cos innego niz stan faktyczny: compose sugerowal, ze konfiguracja wideo idzie przez panel jak SMTP, a `.env.production.example` twierdzil wprost, ze "klucze API ustawia sie w panelu". Stad brala sie mylaca obserwacja, ze `app_settings` nie ma zadnego klucza LIVEKIT mimo dzialajacego wideo: to jest stan NORMALNY, bo `SettingsService` czyta baze, potem srodowisko, potem wartosc domyslna. Wideo idzie przez srodowisko swiadomie: dostawca i klucze naleza do infrastruktury instancji, tak samo jak adres MinIO czy baza, a adres LiveKit musi zgadzac sie z domena obslugiwana przez nginx hosta. Ustawia je wiec ten, kto wdraza, a nie administrator tresci. Dopisane takze `LIVEKIT_INTERNAL_URL`, ktorego w pliku wzorcowym nie bylo, choc `SettingKey` zna je od poczatku: adres widziany przez backend bywa inny niz ten dla przegladarki, a bez niego nagrywanie przez Egress probuje laczyc sie z serwerem droga publiczna. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+17
-5
@@ -119,19 +119,31 @@ APP_VERSION=latest
|
||||
# Pojedynczy webinar moze wybrac wlasnego w formularzu.
|
||||
VIDEO_PROVIDER=NONE
|
||||
|
||||
# Adres serwera LiveKit widziany przez przegladarke uczestnika.
|
||||
# Klucze API ustawia sie w panelu, tak samo jak dane SMTP: nie ma ich tutaj,
|
||||
# zeby zmiana nie wymagala restartu ani dostepu do serwera.
|
||||
# Adres serwera LiveKit widziany przez PRZEGLADARKE uczestnika: publiczna
|
||||
# domena z waznym certyfikatem, bo klient laczy sie z nia po wss://.
|
||||
LIVEKIT_URL=
|
||||
|
||||
# Adres widziany przez BACKEND, do wywolan API i nagrywania przez Egress.
|
||||
# Puste oznacza "ten sam co publiczny". W sieci Dockera podaj `ws://livekit:7880`:
|
||||
# backend nie musi wtedy wychodzic na zewnatrz i wracac przez nginx po to, zeby
|
||||
# porozmawiac z kontenerem stojacym obok.
|
||||
LIVEKIT_INTERNAL_URL=
|
||||
|
||||
# -----------------------------------------------------------------------------
|
||||
# PROFIL LIVEKIT: wlasny serwer wideo
|
||||
# -----------------------------------------------------------------------------
|
||||
# Wypelnij wylacznie, gdy stawiasz serwer u siebie:
|
||||
# docker compose --profile livekit up -d
|
||||
#
|
||||
# Klucz i sekret musza byc te same tutaj i w panelu (Ustawienia > Wideo):
|
||||
# tutaj konfiguruja serwer, w panelu sluza do podpisywania tokenow.
|
||||
# Klucz i sekret sluza DWOM rzeczom naraz: konfiguruja serwer LiveKit
|
||||
# i trafiaja do backendu, ktory podpisuje nimi tokeny dostepu oraz zleca
|
||||
# nagrywanie. Dlatego wystarczy wpisac je TUTAJ, a nie takze w panelu:
|
||||
# `SettingsService` czyta baze, potem srodowisko, potem wartosc domyslna.
|
||||
#
|
||||
# Puste `app_settings` jest przy tym stanem NORMALNYM, a nie brakiem
|
||||
# konfiguracji: zapytanie do bazy o klucze LIVEKIT nie zwroci niczego takze
|
||||
# na dzialajacej instancji. Stan faktyczny czyta sie z wypisu
|
||||
# `SettingsStartupReport` w logu backendu.
|
||||
LIVEKIT_API_KEY=
|
||||
LIVEKIT_API_SECRET=
|
||||
|
||||
|
||||
Reference in New Issue
Block a user