On this page
We used to keep a separate Jitsi Meet install guide for every Ubuntu release: 16.04, 20.04, 22.04, plus one for Debian 11. They were 90% identical, and the 10% that differed is exactly what went stale. This single guide replaces all of them and covers the three Ubuntu releases worth installing on today, with the differences called out where they matter.
The short version: the install commands are the same on 22.04, 24.04 and 26.04, as long as you use the current repository key format from the Jitsi handbook. The old guides break mainly because of how they added those keys.
Jitsi installation on Ubuntu 22.04 vs 24.04 vs 26.04
| Ubuntu 22.04 (jammy) | Ubuntu 24.04 (noble) | Ubuntu 26.04 (resolute) | |
|---|---|---|---|
| Named in the Jitsi handbook | Yes, the minimum supported Ubuntu | Covered by "22.04 or newer" | Covered by "22.04 or newer", not named yet |
Old apt-key add Prosody line | Works, prints a deprecation warning | Works, prints a deprecation warning | Fails, apt-key was removed in 25.04 |
| Prosody repository | jammy | noble | resolute |
lua5.2 and OpenJDK 17 | In the archive | In the archive | In the archive |
The Prosody codename is filled in automatically by lsb_release -sc in the commands below, so you never type it. If you are choosing a release for a new server today, 24.04 is the safe pick: fully covered by the handbook and, per Ubuntu's release cycle, supported until 2029. 26.04 has everything Jitsi needs published, but put it through a test install before production.
Jitsi setup checklist before you start
- A fresh Ubuntu server. Jitsi installs nginx, Prosody, Jicofo and the videobridge, and it does not like sharing ports with an existing web server.
- A DNS name such as
meet.example.comwith an A record pointing at the server's public IP. Browsers only allow camera access on HTTPS, and Let's Encrypt needs that name. - Sizing. A small test runs on almost anything; real meetings are limited by the videobridge's CPU and bandwidth. What it costs to self-host Jitsi Meet has instance sizes by team size.
Jitsi Meet install, step by step
Step 1: Set the hostname
sudo hostnamectl set-hostname meet.example.com
hostname Then add the name to /etc/hosts with the server's public IP, so the server resolves itself without depending on external DNS:
127.0.0.1 localhost
203.0.113.10 meet.example.com Step 2: Open the firewall
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 On AWS, GCP or Azure, open the same ports in the cloud security group too. It is a separate firewall and the most common reason a finished install cannot be reached. What each Jitsi port is for explains which ones you can leave closed.
Step 3: Enable universe and HTTPS repositories
sudo apt update
sudo apt install -y apt-transport-https curl gnupg
sudo add-apt-repository -y universe
sudo apt update Step 4: Add the Prosody repository
This is the step that differs from older guides. The key goes into its own keyring file and the repository line points at it with signed-by, which works on every release including 26.04 (Prosody documents the same layout on its package repository page):
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
sudo apt install -y lua5.2 Step 5: Add the Jitsi repository
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 Step 6: Install Jitsi Meet
sudo apt install -y jitsi-meet The installer asks two questions. First the hostname: enter meet.example.com, exactly as in step 1. Then the certificate. Pick Let's Encrypt if DNS already points at the server and port 80 is open; the installer requests and installs the certificate for you and asks for an email address for renewal notices.
If you chose a self-signed certificate to get going, switch to Let's Encrypt later with the bundled script:
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh Open https://meet.example.com, start a room, and join from two devices. Then join from a third. That third participant is the real test, explained next.
Jitsi Videobridge on cloud servers behind NAT
With two participants, Jitsi connects them directly and the videobridge is idle. The third participant moves the call onto the bridge. On AWS and most clouds the server only sees its private IP, so if three-way calls connect with no audio or video, tell the bridge its public address in /etc/jitsi/videobridge/jvb.conf:
ice4j {
harvest {
mapping {
static-mappings = [
{
local-address = "10.0.1.25"
public-address = "203.0.113.10"
}
]
}
}
} sudo systemctl restart jitsi-videobridge2 If the bridge still misbehaves, Jitsi Meet common errors walks through the logs for each failure.
Fixing a server set up from an old guide
Older guides, including the ones this page replaces, added the Prosody repository with sudo tee -a /etc/apt/sources.list and the key with apt-key. On a server that went through that, check for two things before upgrading Ubuntu:
grep -n prosody /etc/apt/sources.list
apt-key list 2>/dev/null | grep -i prosody - If
sources.listcontains a Prosody line, remove it and use thesigned-byfile from step 4. Running the old command twice appended duplicate lines, which apt warns about on every update. - If the key is in the legacy apt-key keyring, an upgrade to 26.04 leaves the repository unverifiable. Re-add it the new way before you run
do-release-upgrade. - Old guides also opened 4443/tcp. Nothing listens there on current versions, so close it.
Debian 11 and 12
add-apt-repository universe, which is Ubuntu-only, and on minimal Debian images install curl and gnupg first. Debian 11's long-term support ended in August 2026, so choose Debian 12 or 13 for anything new.
Jitsi configuration after install
A fresh install lets anyone who finds the URL create meetings. Lock that down first: Jitsi Meet security best practices covers room creation, lobby and ports, and Jitsi authentication methods compares JWT, LDAP and SSO. If your users already have directory accounts, Jitsi LDAP authentication is the quickest of those to set up. After that, the usual additions are a TURN server for users behind strict firewalls and Jibri for server-side recording.
Frequently Asked Questions
Can I install Jitsi Meet on Ubuntu 26.04?
Everything the install needs is published for 26.04: the Prosody repository has a resolute distribution, and lua5.2 and OpenJDK 17 are in the archive. The Jitsi handbook says 22.04 or newer without naming 26.04 yet, so test on a VM before production.
How do I install Jitsi Meet on Ubuntu 22.04?
Set the hostname, open ports 80, 443 and UDP 10000, add the Prosody and Jitsi repositories with signed-by keyrings, then run sudo apt install jitsi-meet and pick Let's Encrypt. The same steps work unchanged on 24.04 and 26.04.
Why does the Prosody apt-key command fail on my server?
apt-key was removed in Ubuntu 25.04, so the apt-key add line from older Jitsi guides fails on 26.04. Download the key into /usr/share/keyrings and reference it with signed-by, as in step 4. That form works on 22.04 and 24.04 too.
Which ports does Jitsi Meet need?
80 and 443 TCP for the web app and certificates, 10000 UDP for the videobridge, and 22 TCP for SSH. 3478 UDP and 5349 TCP are for a TURN server. Port 4443 from older guides is no longer used.
Can I use Docker for the Jitsi installation instead?
Yes. The official docker-jitsi-meet project runs the same components as containers and is often easier to upgrade. Use the package install when you want the handbook's standard file layout, which most Jitsi tutorials and fixes assume.
Do I need a domain name to install Jitsi Meet?
In practice, yes. Browsers only allow camera and microphone access on HTTPS pages, and a free Let's Encrypt certificate needs a hostname that points at the server. An IP address with a self-signed certificate works for a quick test, but every participant gets a security warning.
Are the steps the same on Debian?
Almost. The Jitsi handbook supports Debian 11 and newer with the same Prosody and Jitsi repository commands. Skip the add-apt-repository universe step, which only exists on Ubuntu, and install curl and gnupg first on minimal Debian images.
Why does a call work with two people but fail with three?
Two participants connect peer to peer, so the videobridge is not used. The third person moves the call onto the bridge, and if UDP 10000 is blocked or the server is behind NAT without a static mapping in jvb.conf, media never arrives.
Skip the Install: Jitsi Meet on AWS in Minutes
A pre-configured Jitsi Meet server with the NAT mapping, certificates and recording already set up for AWS.
Get Jitsi Meet on AWS Marketplace