← Back to list

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.

Nikhil Sachan · 2026-01-20 05:37 · 2 claps · 3.6 min read
#jitsi #jitsi-meet #ssl #ubuntu #installation
Open on Medium ↗
Wiki topics: 🔓 · Open Source

Installing Jitsi on Your Own Server — Complete Step-by-Step Guide (Part 2)

jitsi-meet installation

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