Repository navigation
Konfiguracja serwera
Instalacja serwera krok po kroku: deploy/README.md. Skrypt instalacyjny ustawia wszystko, co potrzebne; ta strona opisuje opcje dla zaawansowanych.
Tutaj (sygnalizacja, aplikacja WWW, SFU) + Caddy (automatyczny HTTPS) + coturn (TURN), wszystko w Dockerze.
Aplikacja przychodzi jako gotowy obraz ghcr.io/kauczu/tutaj (amd64, arm64), budowany i testowany przez CI.
Porty: 80/443 tcp, 3478 tcp+udp (TURN), 40000 tcp+udp (SFU), 49160–49200 udp (przekaźnik TURN).
Publiczny serwer z darmowym TURN i SFU łatwo nadużyć. Domyślnie (w obrazie Dockera) działają więc:
- lista dozwolonych stron (originów) – sygnalizacji nie użyje cudza strona,
- limity na adres IP – połączenia, otwarte pokoje, dołączenia na minutę,
- krótko ważne poświadczenia TURN (4 h) oraz limity coturn – przepustowość na sesję, liczba alokacji.
Właściciel nie jest ograniczany. Instalator generuje OWNER_KEY i wypisuje go na koniec. Wpisany w lobby
(„Urządzenia, jakość i ustawienia zaawansowane” → „Klucz właściciela”) zdejmuje limity pokoi i dołączeń i daje
poświadczenia TURN ważne 24 h. Pełne zwolnienie, także z limitu połączeń, zapewnia TRUSTED_IPS (np. stały adres domowy).
| Zmienna | Domyślnie | Opis |
|---|---|---|
PORT / HOST
|
3000 / 0.0.0.0
|
nasłuch HTTP + WebSocket (/ws) |
HTTPS_PORT |
– | włącza HTTPS (certyfikat z TLS_KEY/TLS_CERT lub generowany w CERT_DIR) |
PUBLIC_URL |
z nagłówka Host
|
adres używany w linkach zaproszeń |
MAX_PEERS |
4 |
limit osób w pokoju |
STUN_URLS |
Google + Cloudflare | lista po przecinku |
TURN_URLS |
– | np. turn:meet.example.com:3478
|
TURN_SECRET |
– | wspólny sekret z coturn (use-auth-secret) – poświadczenia ważne TURN_TTL s |
TURN_USERNAME / TURN_CREDENTIAL
|
– | alternatywnie stałe poświadczenia |
SESSION_SECRET |
losowy | podpis tokenów wznowienia sesji; ustaw, by rozmowy przeżywały restart serwera bez renegocjacji |
CLIENT_DIR |
packages/client/dist |
katalog z aplikacją WWW |
OWNER_KEY |
– | klucz właściciela: zdejmuje limity, dłuższe poświadczenia TURN |
TRUSTED_IPS |
– | adresy/podsieci IPv4 bez limitów, np. 203.0.113.7,198.51.100.0/24
|
ALLOWED_ORIGINS |
origin z PUBLIC_URL
|
strony, które mogą łączyć się z sygnalizacją; * wyłącza kontrolę |
TRUST_PROXY |
– |
1 = prawdziwe IP klienta z X-Forwarded-For (za reverse proxy) |
LIMITS |
włączone przy NODE_ENV=production
|
0 wyłącza limity na IP |
MAX_CONNECTIONS_PER_IP / MAX_ROOMS_PER_IP / JOINS_PER_MINUTE
|
20 / 5 / 30
|
limity na adres IP |
TURN_TTL / OWNER_TURN_TTL
|
14400 / 86400 s |
ważność poświadczeń TURN (zwykli użytkownicy / właściciel) |
SFU (lub flaga --sfu) |
wyłączone | włącza SFU (mediasoup) |
SFU_PORT |
40000 |
jeden port UDP+TCP dla wszystkich mediów SFU |
SFU_ANNOUNCED_ADDRESS |
pierwszy adres LAN | publiczny IP/host, pod którym klienci łączą się z SFU (za NAT/Dockerem) |
SFU_LISTEN_IP |
0.0.0.0 |
interfejs nasłuchu SFU |
Użytkownicy
Serwer
Programiści