How to Install and Configure Jitsi Meet on Ubuntu (Complete Self-Hosted Video Conferencing Guide)
Last Updated: July 11th, 2026
This comprehensive tutorial shows you how to install, configure, secure, and run Jitsi Meet on an Ubuntu server. Jitsi Meet is a fully encrypted, 100% open-source video conferencing solution that allows you to host secure online meetings, virtual classrooms, and team collaborations without relying on commercial webinar platforms or sharing your meeting telemetry with third parties.
What Is Jitsi Meet?
Jitsi Meet is an open-source WebRTC-compatible video conferencing system that supports audio, dial-in, desktop sharing, file transfers, and instant messaging. Proprietary video conferencing applications often enforce restrictive time limits, require specialized client software downloads, or track user data. Jitsi Meet works directly inside modern web browsers using standard web components, offering pristine audio/video quality and complete structural sovereignty over your communication infrastructure.
Jitsi Meet Features
- Browser-Based Access: No mandatory client software downloads required for participants; meetings run directly in Chrome, Firefox, Safari, or Edge.
- End-to-End Encryption: Supports secure media streaming and encrypted signaling channels across WebRTC paths.
- Advanced Meeting Controls: Enable moderator passwords, lobby waiting rooms, blurred backgrounds, and synchronized YouTube video sharing.
- Scalable Architecture: Integrates with Jitsi Videobridge (JVB) to handle large multi-user conferences efficiently by routing packets rather than relaying streams.
- Mobile Applications: Fully compatible with official Jitsi Meet apps available on iOS and Android app stores.
Requirements & Prerequisites
You will need a clean Ubuntu server (22.04 or 24.04 LTS recommended) with at least 2GB of RAM, administrative sudo privileges, a fully qualified domain name (e.g., meet.example.com) with proper DNS A records configured, and ports 80, 443, and UDP ports 10000-20000 open in your firewall.
Step 1: Set Your Server Hostname and Update Packages
Ensure your system hostname matches your intended meeting domain and update the local package cache:
sudo hostnamectl set-hostname meet.example.com
sudo apt update && sudo apt upgrade -y
Add your hostname mapping inside /etc/hosts next to your local loopback address if it isn't automatically bound:
sudo nano /etc/hosts
# Ensure a line like: 127.0.0.1 meet.example.com exists
Step 2: Install the Jitsi Meet Repositories and Dependencies
Jitsi packages require the universe repository and the official Jitsi signing keys. Install the prerequisite tools:
sudo apt install -y gnupg2 ufw curl apt-transport-https
Configure the UFW firewall rules to allow web traffic and the Jitsi Videobridge media stream port range:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000:20000/udp
sudo ufw enable
Add the official Jitsi repository key and package source:
curl https://download.jitsi.org/jitsi-key.gpg.key | sudo gpg --dearmor -o /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 3: Install Jitsi Meet Package Bundle
Install the master Jitsi Meet installer package. During installation, the interactive prompt will ask for your domain name—input your fully qualified hostname (e.g., meet.example.com):
sudo apt install -y jitsi-meet
When prompted to select an SSL certificate configuration, choose the option to **Generate a new self-signed certificate** for now; the post-installer script will later swap this out for a secure Let's Encrypt certificate.
Step 4: Obtain a Secure Let's Encrypt TLS Certificate
Jitsi includes an automated helper script to issue and install a production-grade SSL certificate. Run the following command and input your administrative email address when prompted:
sudo /usr/share/jitsi-meet/scripts/install-retrieved-cert.sh
Alternatively, execute the standalone certificate generation tool for your domain if the helper script encounters an environment conflict:
sudo apt install -y certbot
sudo certbot --webroot --webroot-path=/usr/share/jitsi-meet -d meet.example.com
Step 5: Advanced Configuration (Authentication & Security)
By default, anyone who visits your Jitsi server can create a room name and start a conference. For a corporate or private environment, you should lock down room creation so only registered users or moderators can initiate calls.
- Edit your Prosody configuration file to enable internal token or guest authentication:
Find the authentication setting block and changesudo nano /etc/prosody/conf.d/meet.example.com.cfg.luaanonymoustointernal_hashedorinternal_plain:authentication = "internal_hashed" - Add a guest configuration section at the bottom of the same file to allow anonymous participants to join once a moderator starts the room:
VirtualHost "guest.meet.example.com" authentication = "anonymous" c2s_require_encryption = false - Configure the Jitsi Meet interface configuration file to point to your guest domain:
Uncomment and adjust the anonymousdomain parameter:sudo nano /etc/jitsi/meet/meet.example.com-config.jsanonymousdomain: 'guest.meet.example.com', - Create your authorized moderator user account via the Prosody control utility:
sudo prosodyctl register moderator_user meet.example.com YourSecurePassword123
Restart all associated Jitsi services to apply the security changes:
sudo systemctl restart prosody jicofo jitsi-videobridge2
Step 6: Running and Testing Your Jitsi Conference
Open your modern web browser and navigate to your secure domain address:
https://meet.example.com
Type a custom meeting name in the room generation box and click **Start Meeting**. If you configured authentication in Step 5, log in with your moderator credentials before initializing the call. Share your meeting URL with guests to test cross-platform WebRTC streaming, chat functions, and desktop sharing capabilities on your private infrastructure.