Use case · Video conferencing

A self-hosted Jitsi Meet server, sized network first

A self-hosted Jitsi Meet server is a network problem before it is a CPU problem: Jitsi's own handbook lists the link first, puts an HD 720p stream at about 2.5 Mbit/s, and says 1 Gbit/s often suffices for a small organisation while a serious server should have 10 Gbit/s. Four dedicated cores and 8 GB of RAM cover a basic install. This page sizes the port, installs Jitsi on Ubuntu with Let's Encrypt, and closes the instance to strangers.

See unmetered servers

What Jitsi needs, in Jitsi's order

ResourceJitsi handbook guidance
NetworkSpeed and reliability are essential; 1 Gbit/s often enough for a small organisation, 10 Gbit/s advisable for a serious server
CPU4 dedicated cores can be enough for a basic server; Prosody uses only one core
RAM8 GB suggested; 4 GB for small meetings; 2 GB for tests
Disk20 GB of standard disk
RecordingJibri: one system per recording, not on the Jitsi Meet server

The network figures are for the videobridge, the component that carries the media; the CPU, RAM and disk figures are for the Jitsi Meet server as a whole. Prosody, the XMPP server that handles signalling, is single-threaded, so a few fast cores do more for it than many slow ones.

Sizing the port

Jitsi Videobridge is a Selective Forwarding Unit: it does not mix video, it forwards each participant's stream to the others. The handbook's approximate bitrates are 200 kbit/s at 180p, 500 kbit/s at 360p, 2,500 kbit/s at 720p and 10 Mbit/s at 4K.

CallUpper bound sent by the bridge
5 people, everyone at 720p5 x 4 x 2.5 Mbit/s = 50 Mbit/s
10 people, everyone at 720p10 x 9 x 2.5 Mbit/s = 225 Mbit/s
4 meetings of 10 at onceabout 900 Mbit/s

Those are ceilings, every participant receiving every other in HD; real calls send less. They still show where a 1 Gbit/s port runs out and why the handbook points serious deployments at 10 Gbit/s. On unmetered dedicated servers the port carries your traffic alone and nothing counts the gigabytes, so a busy week of meetings changes nothing on the invoice. The port can be upgraded to 10 Gbps when the meetings outgrow it.

Installing on Ubuntu

  1. Point a DNS A record, such as meet.example.org, at the server. Let's Encrypt needs it.
  2. Open the firewall ports Jitsi lists: 80 for the certificate, 443 for the web app, 10000/udp for media, 22 for SSH, 5349/tcp for the TURN fallback, and 3478/udp if you enable STUN.
  3. Enable the universe repository, add the Prosody and Jitsi package repositories, and install jitsi-meet. Jitsi requires OpenJDK 17.
  4. When the installer asks, give the hostname and choose the Let's Encrypt certificate. Jitsi's mobile apps need a certificate from a trusted authority, so a self-signed one is a dead end.
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable
sudo add-apt-repository universe
sudo apt update
sudo apt install apt-transport-https
sudo curl -sL https://prosody.im/files/prosody-debian-packages.key -o /usr/share/keyrings/prosody-debian-packages.key
echo "deb [signed-by=/usr/share/keyrings/prosody-debian-packages.key] http://packages.prosody.im/debian $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/prosody-debian-packages.list
curl -sL https://download.jitsi.org/jitsi-key.gpg.key | sudo sh -c 'gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg'
echo "deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/" | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
sudo apt update
sudo apt install jitsi-meet

Jitsi supports Ubuntu 24.04 or newer and Debian 12 or newer. Beyond 100 participants, the handbook raises the systemd limits DefaultLimitNOFILE, DefaultLimitNPROC and DefaultTasksMax to 65000.

Closing it to strangers

Out of the box, the handbook says, anyone who reaches the server can start a meeting and talk to anyone else. Room passwords protect one room after it exists; they do not stop someone creating rooms on your bridge and spending your bandwidth.

Restrict who may create meetings with authentication. The handbook's older 'secure domain' method, Prosody accounts with a guest domain for invitees, is marked as not for new installations, and the handbook points new deployments to JWT token authentication instead.

Why a whole machine

On a single-tenant machine no neighbour's burst shares the cores or the port, and the port is yours alone at the switch. One IPv4 address is included, IPv6 can be added free at checkout on most lines, and the videobridge needs a public address for UDP 10000 without NAT to work around.

A machine already on the shelf is delivered about 30 minutes after the order is approved; a build to order takes 4 to 24 hours. Pick the city nearest the people meeting, New York, Miami, San Francisco, Amsterdam or Bucharest, because round-trip time is felt in every conversation.

Recording and when to stop scaling up

For recording, the handbook says Jibri needs one system per recording, with RAM, CPU and disk needs far higher than Jitsi Meet itself: at least 8 GB of RAM to record at 1080x720. Put it on its own machine, not on the bridge.

Past one bridge's capacity, Jitsi can add more videobridges, and the network then matters on each of them. For a few meetings a week, a hosted service is cheaper than any server.

Questions

How much bandwidth does a Jitsi Meet server need?

Jitsi's handbook puts 720p video at about 2,500 kbit/s per stream and says 1 Gbit/s is often enough for a small organisation, with 10 Gbit/s advisable for a serious server. Because the bridge forwards each stream to the other participants, outbound traffic grows quickly with the size of the call.

How many CPU cores does Jitsi need?

The handbook says 4 dedicated cores can be enough for a basic server. Prosody uses only one core, so per-core speed matters for signalling.

Which ports must be open?

TCP 80 for Let's Encrypt, TCP 443 for the web app, UDP 10000 for audio and video, TCP 22 for SSH and TCP 5349 for the TURN fallback; UDP 3478 is optional, for STUN.

Can I stop strangers creating meetings?

Yes, with authentication. The handbook's Prosody secure-domain method is marked as not for new installations; it recommends JWT token authentication instead. Room passwords alone do not stop new rooms being created.

Can the same server record meetings?

The handbook advises against it. Jibri needs one system per recording and far more RAM, CPU and disk than Jitsi Meet; 8 GB of RAM is the minimum for one 1080x720 recording.

Which Ubuntu version should I use?

Ubuntu 24.04 or newer, with the universe repository enabled; Debian 12 or newer also works. Jitsi requires OpenJDK 17.

Give the bridge an unmetered port

Dedicated servers with a port of their own and nothing counting the traffic, from 1 to 100 Gbps.

See unmetered servers

Related on Server Room

Other use cases