Install Jitsi Meet on Ubuntu Server with SSL (Full Step-by-Step Guide)
Learn how to self-host Jitsi Meet on Ubuntu with SSL, Nginx, and Let’s Encrypt using a complete step-by-step production-ready setup guide.
Installing Jitsi on Your Own Server — Complete Step-by-Step Guide (Part 2)

jitsi-meet installation
Video conferencing has become essential for remote work, online education, and virtual collaboration. While platforms like Zoom and Google Meet dominate the market, many organizations and individuals prefer self-hosted solutions for greater privacy, control, and customization.
Jitsi Meet is a powerful open-source video conferencing platform that allows you to host secure meetings on your own infrastructure. In this guide, you’ll learn how to install Jitsi on a Linux server and configure it properly with HTTPS.
Why Self-Host Jitsi?
Before starting the installation, let’s look at why self-hosting Jitsi is beneficial:
- Full control over your data
- No meeting duration limits
- Enhanced privacy and security
- Custom branding and configuration
- No dependency on third-party services
For more insights, you can also read: Why You Should Host Your Own Video-Conferencing Server with Jitsi.
System Requirements
Make sure your server meets the following minimum requirements.
Recommended Setup
- OS: Ubuntu 20.04 or 22.04 (64-bit)
- RAM: Minimum 4GB (8GB recommended for production)
- CPU: 2+ cores
- Storage: At least 30GB
- Public IP Address
- Domain Name (Example:
meet.yourdomain.com)
Step 1: Update Your Server
# First, update all system packages:
sudo apt update && sudo apt upgrade -y
# Install HTTPS transport support:
sudo apt install apt-transport-https -y
# Enable Ubuntu Universe repository (required for dependencies):
sudo add-apt-repository universe
sudo apt update
# Reboot the server if the kernel was updated:
sudo reboot
Step 2: Domain Setup
Decide the domain you want to use, such as:
meet.yourdomain.com
Create a DNS A Record pointing to your server’s public IP.
Example DNS Record
| Record Type | Hostname | Public IP | TTL (Seconds) |
| — — — — — — — | — — — — — — | — — — — -| — — — — — — — — |
| A | meet.yourname.com | (x.x.x.x) | 1800 |
Set Server Hostname
sudo hostnamectl set-hostname meet.yourdomain.com
Edit the hosts file:
sudo nano /etc/hosts
Add:
127.0.0.1 localhost
# x.x.x.x with you public IP
x.x.x.x meet.yourdomain.com
Verify hostname:
# it should return meet.yourdomain.com
ping "$(hostname)"
It should return your domain name.
Step 3: Add Prosody Repository
#Prosody is the XMPP server required by Jitsi. Adding the official repository ensures up-to-date packages and lobby support.
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
# Install Lua dependency:
sudo apt install lua5.2
Step 4: Add Jitsi Package Repository
Add the official 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
# Update packages:
sudo apt update
Step 5: Configure Firewall
The following ports must be open:
- 80 TCP => For SSL certificate verification / renewal with Let’s Encrypt. Required
- 443 TCP => For general access to Jitsi Meet. Required
- 10000 UDP => For General Network Audio/Video Meetings. Required
- 22 TCP => For Accessing your Server using SSH (change the port accordingly if it’s not 22). Required
- 3478 UDP => For querying the stun server (coturn, optional, needs config.js change to enable it).
- 5349 TCP => For fallback network video/audio communications over TCP (when UDP is blocked for example), served by coturn. Required
Using UFW Firewall
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw allow 3478/udp
sudo ufw allow 5349/tcp
sudo ufw enable
Step 6: Install Jitsi Meet
Install Jitsi:
sudo apt install jitsi-meet
During installation:
1️⃣ Enter Hostname
Provide your domain:
meet.yourdomain.com
2️⃣ SSL Certificate
Select:
Generate a new Let’s Encrypt certificate
This automatically configures HTTPS.
Step 7: Advanced NAT Configuration (Optional)
If your server is behind NAT and video calls fail, configure static IP mapping.
Edit:
sudo nano /etc/jitsi/videobridge/jvb.conf
Add:
ice4j {
harvest {
mapping {
static-mappings = [
{
local-address = "<Local.IP.Address>"
public-address = "<Public.IP.Address>"
}
]
}
}
}
Restart services:
sudo systemctl restart jitsi-videobridge2
Step 8: Access Your Jitsi Server
Open your browser and visit:
https://meet.yourdomain.com
You should now see the Jitsi Meet interface 🎉 Create a room and start conferencing instantly.
Fixing SSL Issues (If Any)
If SSL errors occur, manually install Certbot.
Install Snap and Certbot
sudo apt install snapd -y
sudo snap install core
sudo snap refresh core
sudo snap install --classic certbot
Create symlink:
sudo ln -s /snap/bin/certbot /usr/bin/certbot
Verify:
certbot --version
Issue SSL Certificate
For Nginx:
sudo certbot --nginx
Verify Renewal
sudo certbot renew --dry-run
Expected output:
Congratulations, all simulated renewals succeeded
Verify Nginx SSL Configuration
sudo nginx -T | grep -A5 meet.yourdomain.com
Check:
ssl_certificate
ssl_certificate_key
Certificate Permissions (Optional Fix)
sudo chmod 644 /etc/letsencrypt/live/meet.yourdomain.com/fullchain.pem
sudo chmod 644 /etc/letsencrypt/live/meet.yourdomain.com/privkey.pem
Import Certificate to Java Truststore
sudo keytool -importcert -alias jitsi-ssl -file /etc/letsencrypt/live/meet.yourdomain.com/fullchain.pem \
-keystore /usr/lib/jvm/java-11-openjdk-amd64/lib/security/cacerts \
-storepass changeit -noprompt
By default, anyone can create rooms. You can restrict room creation to authenticated users.
💬 Share Your Feedback
If you face any issues during installation or configuration, feel free to drop your error message or question in the comments — I’ll do my best to help you troubleshoot.
If this guide helped you successfully deploy Jitsi, don’t forget to clap 👏 and share the article so others can benefit too.
Your feedback and suggestions are always welcome — they help improve future tutorials!
메타데이터
- post_id
- f44f4ba1577f
- slug
- install-jitsi-meet-on-ubuntu-server-with-ssl-full-step-by-step-guide-f44f4ba1577f
- url
- https://medium.com/@nikhilsachan28/install-jitsi-meet-on-ubuntu-server-with-ssl-full-step-by-step-guide-f44f4ba1577f
- canonical_url
- https://medium.com/@nikhilsachan28/install-jitsi-meet-on-ubuntu-server-with-ssl-full-step-by-step-guide-f44f4ba1577f
- author_url
- https://medium.com/@nikhilsachan28
- status
- ok
- fetched_at
- 2026-06-24 13:29:15