The Debian packages are the original way to install Jitsi Meet. The installer asks a few questions and wires everything together on the host: Nginx, Prosody, Jicofo, the videobridge and a TURN server.
If you want easier upgrades and isolation, use the Docker guide instead. Both end with the same Jitsi Meet.
Before you start
- Ubuntu 24.04 or 22.04 LTS, 2 vCPU and 4 GB of RAM. See server requirements.
- A domain like
meet.example.comwith anArecord pointing at the server’s public IP. - A user with sudo.
1. Set the hostname
sudo hostnamectl set-hostname meet.example.com
Add the public name to /etc/hosts so the server resolves itself:
127.0.0.1 localhost
203.0.113.10 meet.example.com
2. Install prerequisites
sudo apt update
sudo apt install -y gnupg2 curl apt-transport-https nginx-full
sudo apt-add-repository universe
3. Add the Prosody repository
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
4. 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
5. 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
3478/udp and 5349/tcp are for the bundled TURN server, which helps users behind strict corporate firewalls. Open the same ports in your cloud provider’s firewall.
6. Install Jitsi Meet
sudo apt install -y jitsi-meet
The installer asks for:
- The hostname: enter
meet.example.com. - The SSL certificate: choose Let’s Encrypt, and give an email address for expiry notices.
7. Test
Open https://meet.example.com and join one room from three devices. Two-person calls go peer to peer and hide videobridge problems.
Where things live
| Component | Config |
|---|---|
| Web app | /etc/jitsi/meet/meet.example.com-config.js |
| Nginx site | /etc/nginx/sites-available/meet.example.com.conf |
| Prosody | /etc/prosody/conf.avail/meet.example.com.cfg.lua |
| Jicofo | /etc/jitsi/jicofo/jicofo.conf |
| Videobridge | /etc/jitsi/videobridge/jvb.conf |
Logs are in /var/log/jitsi/ and through journalctl -u jicofo -u jitsi-videobridge2 -u prosody.
Next steps
- Require a login to create rooms. On the package install, set the Prosody virtual host to
authentication = "internal_hashed"and add a guest virtual host. - Add JWT authentication for app integrations.
- Keep it patched with
sudo apt update && sudo apt upgrade, and test after each Jitsi upgrade.