1.  [Strona główna](/) ›
2.  [Baza wiedzy](/baza-wiedzy/) ›
3.  Jitsi Meet - self-hosted wideo

# Jitsi Meet - self-hosted wideokonferencje na VPS

Opublikowano: 10 kwietnia 2026 · Kategoria: VPS

⚡ W skrócie · 8 min czytania

-   VPS z dobrym CPU i łączem pod Jitsi Videobridge.
-   Instalacja Jitsi Meet - quick install.
-   TURN server - coturn dla połączeń za NAT.
-   JWT authentication - kontrola dostępu do pokojów.
-   Skalowanie - konfiguracja Jitsi Videobridge.

Zoom, Google Meet i Teams to wygodne narzędzia, ale dane z rozmów trafiają na serwery zewnętrznych firm. Jitsi Meet to open-source alternatywa, którą możesz uruchomić na własnym VPS - bez opłat za licencje i z pełną kontrolą nad danymi. Instalacja jest zaskakująco prosta dzięki oficjalnemu skryptowi. Wyzwaniem jest konfiguracja sieci: TURN server (coturn) dla użytkowników za NAT i firmowymi firewallami, skalowanie Jitsi Videobridge (JVB) dla dużych konferencji i uwierzytelnianie JWT dla kontrolowanego dostępu.

## Instalacja Jitsi Meet - quick install

Oficjalny pakiet Jitsi dla Debian/Ubuntu instaluje wszystkie komponenty przez apt: Prosody (XMPP server), Jicofo (conference focus), Jitsi Videobridge (JVB) i nginx. Wymagana jest domena z rekordem A wskazującym na VPS:

```
# Ubuntu 22.04 / Debian 12 - wymagana pelna domena (nie IP)
# Przed instalacja: DNS A record meet.example.com → twoje_IP

# Dodaj repo Jitsi
curl https://download.jitsi.org/jitsi-key.gpg.key | \
  sudo gpg --dearmor -o /usr/share/keyrings/jitsi.gpg
echo "deb [signed-by=/usr/share/keyrings/jitsi.gpg] https://download.jitsi.org stable/" | \
  sudo tee /etc/apt/sources.list.d/jitsi-stable.list

# Upewnij sie ze certbot jest zainstalowany
sudo apt update && sudo apt install -y certbot

# Instaluj Jitsi (interaktywny installer pyta o domene i certyfikat)
sudo apt install -y jitsi-meet

# Podczas instalacji:
# 1. Podaj domene: meet.example.com
# 2. Wybierz certyfikat: Let's Encrypt (automatyczny) lub własny

# Generuj certifikat Let's Encrypt jezeli nie zrobiłes tego w instalatorze
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

# Sprawdz status usług
sudo systemctl status prosody jicofo jitsi-videobridge2 nginx
```

## TURN server - coturn dla połączeń za NAT

TURN server (Traversal Using Relays around NAT) jest konieczny dla użytkowników za korporacyjnymi firewallami blokującymi UDP. Coturn to standardowa implementacja serwera STUN/TURN. Jitsi automatycznie konfiguruje go jeśli jest zainstalowany na tym samym serwerze:

```
# Instaluj coturn
sudo apt install -y coturn

# Edytuj /etc/default/coturn
TURNSERVER_ENABLED=1

# Konfiguracja /etc/turnserver.conf
listening-port=3478
tls-listening-port=5349
listening-ip=0.0.0.0
external-ip=TWOJE_PUBLICZNE_IP
relay-ip=TWOJE_PUBLICZNE_IP
realm=meet.example.com
server-name=meet.example.com
use-auth-secret
static-auth-secret=LOSOWY_KLUCZ_32_ZNAKI
cert=/etc/letsencrypt/live/meet.example.com/fullchain.pem
pkey=/etc/letsencrypt/live/meet.example.com/privkey.pem
log-file=/var/log/turnserver/turnserver.log
min-port=49152
max-port=65535

# Uruchom coturn
sudo systemctl enable --now coturn

# Konfiguruj Jitsi - /etc/jitsi/meet/meet.example.com-config.js
p2p: {
  enabled: true,
  stunServers: [
    { urls: 'stun:meet.example.com:3478' }
  ]
},
iceServers: [
  {
    urls: ['turn:meet.example.com:3478?transport=udp'],
    username: 'AUTOGENEROWANE_PRZEZ_JITSI',
    credential: 'AUTOGENEROWANE_PRZEZ_JITSI'
  }
]
```

## JWT authentication - kontrola dostępu do pokojów

Domyślnie każdy może wejść do dowolnego pokoju wpisując URL. JWT authentication pozwala wymagać ważnego tokenu - wygenerowanego przez Twoją aplikację - do dołączenia do konferencji:

```
# /etc/prosody/conf.avail/meet.example.com.cfg.lua
VirtualHost "meet.example.com"
  authentication = "token"
  app_id = "moja_aplikacja"
  app_secret = "TAJNY_KLUCZ_JWT"
  allow_empty_token = false

# Zrestartuj Prosody
sudo systemctl restart prosody

# Generowanie tokenu JWT w Node.js
const jwt = require('jsonwebtoken');

const payload = {
  context: {
    user: {
      name: "Jan Kowalski",
      email: "jan@example.com",
    },
  },
  aud: "jitsi",
  iss: "moja_aplikacja",
  sub: "meet.example.com",
  room: "nazwaPokooju",     // "*" = dostep do wszystkich pokojow
  exp: Math.floor(Date.now() / 1000) + 3600,
};

const token = jwt.sign(payload, 'TAJNY_KLUCZ_JWT');
const meetURL = `https://meet.example.com/nazwaPokooju?jwt=${token}`;
console.log(meetURL);
```

## Skalowanie - konfiguracja Jitsi Videobridge

Przy dużych konferencjach (20+ uczestników) jeden JVB może być wąskim gardłem. Jitsi obsługuje wiele instancji JVB na różnych serwerach - ruch video jest rozdzielany między nie przez Jicofo:

Funkcja

Jitsi Meet (self-hosted)

Zoom

Google Meet

Cena

Koszt VPS (~20-100 PLN/msc)

Od 0 (limit 40 min) / 54 PLN/msc

Od 0 (Google Workspace)

Kontrola danych

Pełna - Twój serwer

Dane u Zoom (USA)

Dane u Google

Maks. uczestników

Zależy od VPS (ok. 50/serwer)

100-1000 (plan)

100-1000 (Workspace)

Nagrywanie

Jibri (skomplikowane)

Wbudowane

Wbudowane

Wymagania techniczne

VPS + konfiguracja

Konto

Google account

## Najczęstsze pytania

Jakie wymagania sprzętowe ma Jitsi Meet na VPS? +

Minimalne wymagania zależą od liczby uczestników: do 10 osób - 2 vCPU i 2 GB RAM. Do 20 osób - 4 vCPU i 4 GB RAM. Do 50 osób - 8 vCPU i 8 GB RAM. Jitsi domyślnie używa peer-to-peer dla 2 uczestników i przełącza na SFU (Jitsi Videobridge) przy 3+. Kluczowe jest łącze: każdy uczestnik HD wideo to ok. 2-3 Mbps upload po stronie serwera. Zalecane jest minimum 100 Mbps dedykowany port.

Dlaczego Jitsi nie działa za NAT i jak to naprawić? +

Jitsi Videobridge używa protokołu ICE do negocjacji mediów. Za NAT (np. VPS z prywatnym IP za load balancerem) JVB nie wie jaki jest jego publiczny adres IP. Rozwiązanie: (1) ustaw NAT\_PUBLIC\_IP w konfiguracji JVB, (2) zainstaluj coturn (TURN server) i skonfiguruj Jitsi do używania go jako relay. Coturn obsługuje UDP port 3478 i TCP 443 jako fallback. Bez TURN server połączenia często się nie nawiązują z sieci za firmowym firewallem.

Jak włączyć uwierzytelnianie JWT w Jitsi Meet? +

JWT authentication w Jitsi pozwala kontrolować dostęp do pokojów przez zewnętrzny system (np. własna aplikacja). Konfiguracja: w /etc/prosody/conf.avail/\[domena\].cfg.lua ustaw authentication=token i podaj app\_id, app\_secret. Twoja aplikacja generuje token JWT z claimami (room, sub=app\_id, iss=app\_id, exp). Link do konferencji zawiera JWT: https://meet.example.com/pokoj?jwt=TOKEN. Bez ważnego tokenu użytkownik jest odrzucany.

Czym Jitsi różni się od Zoom i Google Meet? +

Jitsi Meet to open-source rozwiązanie self-hosted: Twoje rozmowy są na Twoim serwerze, bez danych u third-party. Zoom i Google Meet to managed cloud services z prostszą obsługą i lepszą skalowalnością, ale z opłatami i brakiem kontroli nad danymi. Jitsi sprawdza się dla firm wymagających RODO-compliance i małych/średnich grup. Dla 100+ uczestników Zoom/Meet jest prostszy i tańszy w utrzymaniu. Jitsi Meet jest darmowy - płacisz tylko za VPS.

Jak nagrywać spotkania w Jitsi Meet? +

Nagrywanie w Jitsi realizuje Jibri (Jitsi Broadcasting Infrastructure) - serwis uruchamiający Chrome w trybie headless i nagrywający wideo. Jibri wymaga osobnej maszyny (lub VM) z min. 4 GB RAM i GPU/CPU do enkodowania. Nagrywa do pliku lokalnego lub streamuje do YouTube/Twitch. Konfiguracja jest skomplikowana - Jibri musi być zarejestrowany w Prosody i połączony z JVB. Alternatywa: nagrywanie po stronie klienta przez przeglądarkę (Ctrl+R w Electron app).

## Sprawdź oferty pasujące do tego scenariusza

Poniżej masz szybkie przejścia do ofert i stron z kodami rabatowymi tam, gdzie są dostępne.

Contabo

VPS z dobrym CPU i łączem pod Jitsi Videobridge

Wydajny CPU

[Aktywuj rabat →](/out/contabo/#reklama "Contabo")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/contabo/)

ProSerwer.pl

Polski VPS - wideokonferencje w Polsce (RODO)

Polski VPS

[Aktywuj rabat →](/out/proserwer-pl/#reklama "ProSerwer.pl")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/proserwer/)

Mikr.us

Tani VPS do testów Jitsi dla małej grupy

Budżet

[Aktywuj rabat →](/out/mikrus/#reklama "Mikr.us")

#Reklama · link partnerski

[Zobacz kod rabatowy →](/kody-rabatowe/mikrus/)

## Powiązane strony

-   [Ranking i porównanie VPS
    
    Aktualne ceny VPS z pełnym kosztem 2-letnim (TCO) i bez ukrytych opłat odnowienia.
    
    ](/vps/)
-   [Mattermost - komunikator dla deweloperów](/baza-wiedzy/mattermost-self-hosted/)
-   [Matrix Synapse - zdecentralizowany komunikator](/baza-wiedzy/matrix-synapse-serwer/)
-   [Nginx - konfiguracja virtual hosts](/baza-wiedzy/nginx-vhost-konfiguracja/)
-   [Wszystkie artykuły](/baza-wiedzy/)
-   [Nextcloud na VPS - instalacja z Nginx, PHP-FPM i PostgreSQL
    
    Nextcloud VPS krok po kroku: Nginx + PHP-FPM 8.2 + PostgreSQL, Redis cache i locking, occ CLI, aplikacje…
    
    ](/baza-wiedzy/nextcloud-instalacja-vps/)
-   [VPS pod Node.js i Next.js - PM2, Nginx, SSL, CI/CD
    
    Jak uruchomić Node.js i Next.js na VPS? PM2, reverse proxy Nginx/Caddy, SSL Let's Encrypt i CI/CD przez GitHub Actions.…
    
    ](/baza-wiedzy/vps-pod-nodejs-nextjs/)
-   [Jaki VPS wybrać?](/jaki-vps-wybrac/)

Autor: [Redakcja HostGrade.pl](/autorzy/) Zespół redakcyjny · Aktualizacja: 20 maja 2026

Artykuły HostGrade.pl przygotowuje i aktualizuje redakcja serwisu. Ceny startowe, ceny odnowienia i warunki planów sprawdzamy w cennikach i regulaminach dostawców, a potem liczymy całkowity koszt za 2 lata (cena startowa plus odnowienia). Zasady zbierania danych i liczenia kosztów opisujemy na stronie Metodologia. Linki partnerskie oznaczamy jako #reklama.

[O redakcji i metodologii →](/autorzy/)