 Autor: [Adam Nadolny](/autorzy/adam-nadolny) Ekspert DevOps i infrastruktury · Zweryfikowano Kwiecień 2026

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

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 · link partnerski

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

ProSerwer.pl

Polski VPS — wideokonferencje w Polsce (RODO)

Polski VPS

[Aktywuj rabat →](/out/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 · link partnerski

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

## Powiązane strony

-   [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/)