Jitsi Meet on Ubuntu 24.04

(Self-Hosted Video Conferencing + Nginx + SSL)

Jitsi Meet is a powerful, open-source video conferencing platform that enables secure audio and video meetings directly in the browser — without requiring user accounts or proprietary software. It supports HD video, screen sharing, chat, meeting recording, moderation controls, and end-to-end encryption (E2EE), making it a strong alternative to Zoom, Google Meet, or Microsoft Teams.

Unlike commercial SaaS video platforms, Jitsi Meet can be fully self-hosted, giving you complete control over meeting data, media traffic, and user access. This makes it ideal for organizations that value privacy, compliance, and infrastructure ownership.

Running Jitsi Meet on Ubuntu 24.04 LTS (Noble Numbat) provides a modern, secure, and long-term supported operating system. Ubuntu 24.04 includes systemd 255, OpenSSL 3, and up-to-date networking components, making it an excellent base for a production-grade, self-hosted video conferencing server.


Architecture Overview

LayerComponentRole
OSUbuntu 24.04 LTSStable, long-term supported Linux base
Web ServerNginxHTTPS termination and web access
ApplicationJitsi Meet (Web UI)Browser-based meeting interface
Media ServerJitsi VideobridgeHandles audio/video streams
SignalingProsody + JicofoAuthentication, room control, signaling
TransportUDP / TCPReal-time media transport
TLSLet’s Encrypt / PKIEncrypted connections

Jitsi uses a modular architecture, allowing it to scale from small private meetings to large multi-participant conferences.


Why Use Jitsi Meet?

  • Open-source & self-hosted – no vendor lock-in
  • No user accounts required – join meetings via simple links
  • High-quality video & audio – WebRTC-based
  • Screen sharing & chat – built-in collaboration tools
  • Meeting moderation – lobby, passwords, participant controls
  • End-to-end encryption (E2EE) – optional enhanced privacy
  • Mobile & desktop support – works in all modern browsers
  • Scalable architecture – suitable for teams or organizations

Jitsi Meet is ideal for users who want private, secure video conferencing without SaaS dependencies.


Jitsi Meet vs Other Video Conferencing Platforms

Feature / CapabilityJitsi MeetZoomGoogle MeetMicrosoft Teams
HostingSelf-hostedCloud onlyCloud onlyCloud only
Open-source✅ Yes❌ No❌ No❌ No
Data ownershipFull controlVendor-controlledVendor-controlledVendor-controlled
Accounts required❌ No✅ Yes✅ Yes✅ Yes
E2EE✅ YesPartialPartialPartial
CostFree (self-hosted)Free / PaidFreePaid

Jitsi stands out for privacy, flexibility, and infrastructure control.


Security & Best Practices on Ubuntu 24.04

  • Run Jitsi only over HTTPS.
  • Use Let’s Encrypt SSL certificates with automatic renewal.
  • Open required ports:
    • 443 TCP (HTTPS)
    • 10000 UDP (media traffic)
    • Optional fallback ports (TCP 4443 / 5349)
  • Enable UFW firewall and restrict unused ports.
  • Set strong room moderation (passwords, lobby).
  • Keep Ubuntu and Jitsi packages updated regularly.
  • Monitor CPU, RAM, and bandwidth usage.
  • Use a dedicated domain or subdomain (e.g. meet.example.com).
  • Enable rate limiting and headers in Nginx.
  • For larger deployments, consider horizontal scaling with multiple videobridges.

Typical Use Cases

  • Team meetings and daily stand-ups
  • Private business calls
  • Remote education and training
  • Internal company conferencing
  • Privacy-focused organizations
  • Self-hosted alternatives to Zoom or Meet
  • Government, NGO, or compliance-sensitive environments

Step 1: Create a Server Instance on Shape.Host

Before installing Jitsi Meet, you need a VPS with a public IP address.

Log in to https://shape.host

Click Create → Instance

Shape.host Resources dashboard with Create > Instance highlighted.

Choose a data center close to your users

Shape.host instance form with the data center location selector highlighted.

Select a plan with at least:

2 CPU cores (4 recommended for multiple participants)

4 GB RAM

40 GB SSD storage

Choose Ubuntu 24.04 (64-bit) as the operating system

Shape.host instance form with the operating system image selector highlighted.

Create the instance and wait for provisioning

Shape.host instance form with the Create Instance button highlighted.

Copy the public IP address of your server

Shape.host Resources dashboard with the server IP address highlighted.

Step 2: Connect to the Server (Linux, macOS & Windows)

Linux / macOS

ssh root@YOUR_SERVER_IP

Windows (PowerShell / Windows Terminal)

ssh root@YOUR_SERVER_IP

Windows (PuTTY)

  • Host Name: YOUR_SERVER_IP
  • Port: 22
  • Connection type: SSH
  • Username: root

Once connected, you should see a root shell prompt.


Step 3: Update the Operating System

apt update
  • Updates the local package index
apt upgrade -y
  • Installs all available security and system updates
  • Ensures compatibility with Jitsi dependencies
Terminal showing APT package management commands and output.

Step 4: Set the Hostname (Critical for Jitsi)

Jitsi requires a valid fully qualified domain name (FQDN).

hostnamectl set-hostname ubuntu-tutorials.shape.host

Sets the system hostname permanently

Edit the hosts file:

nano /etc/hosts

Add or update (replace IP accordingly):

127.0.0.1       localhost
YOUR_SERVER_IP  meet.example.com

This ensures local hostname resolution works correctly.

Terminal showing the GNU nano editor and configuration text.

Verify hostname:

hostname
Terminal showing hostname configuration or system identification details.

Refresh system state:

apt update
apt upgrade
Terminal showing APT package management commands and output.

Reboot to fully apply hostname changes:

reboot

Reconnect via SSH after reboot.


Step 5: Configure Firewall (UFW)

Jitsi requires several ports for media, signaling, and TURN/STUN.

ufw allow 22/tcp
  • Allows SSH access
ufw allow 80/tcp
ufw allow 443/tcp
  • Allows HTTP and HTTPS traffic
ufw allow 10000/udp
  • Main Jitsi video/audio media port
ufw allow 3478/udp
  • STUN/TURN (media traversal)
ufw allow 5349/tcp
  • TURN over TCP (fallback for restricted networks)

Enable firewall:

ufw enable
Terminal showing firewall configuration commands and rules.

Check status:

ufw status
Terminal showing firewall configuration commands and rules.

Step 6: Install Java and Core Dependencies

Jitsi components require Java.

apt install gnupg2 curl apt-transport-https openjdk-11-jre-headless
  • openjdk-11-jre-headless → Required for Jicofo & Videobridge
  • gnupg2, curl → Needed for repository verification
Terminal showing APT package management commands and output.

Verify Java:

java -version
Terminal showing java commands or output during Install Java and Core Dependencies.

Step 7: Add Jitsi Repository

Import Jitsi GPG key:

curl https://download.jitsi.org/jitsi-key.gpg.key | gpg --dearmor > /usr/share/keyrings/jitsi-keyring.gpg

Add Jitsi repository:

echo "deb [signed-by=/usr/share/keyrings/jitsi-keyring.gpg] https://download.jitsi.org stable/" > /etc/apt/sources.list.d/jitsi-stable.list

Update package list:

apt update
Terminal showing APT package management commands and output.

Step 8: Install Jitsi Meet

apt install jitsi-meet
Terminal showing a telnet connection test.

During installation you will be prompted:

Hostname

meet.example.com

SSL certificate

Generate a new self-signed certificate

This certificate is temporary and will be replaced with Let’s Encrypt in the next step.

Terminal dialog configuring the Jitsi Videobridge domain name.

Step 9: Enable Let’s Encrypt SSL

Install Certbot:

apt install certbot
Terminal showing APT package management commands and output.

Run Jitsi’s built-in SSL installer:

/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

This script:

  • Requests a Let’s Encrypt certificate
  • Automatically configures Jitsi + Nginx
  • Sets up auto-renewal
Terminal showing hostname configuration or system identification details.
Terminal showing systemd service management commands or output.

Step 10: Restart Jitsi Services

systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart nginx
Terminal showing systemd service management commands or output.

Check service status:

systemctl status prosody jicofo jitsi-videobridge2 nginx

All services should be active (running).


Step 11: Access Jitsi Meet

Open your browser:

https://meet.example.com

You now have:

  • A fully self-hosted Jitsi Meet instance
  • Secured with Let’s Encrypt SSL
  • Ready for private video conferences
Jitsi Meet welcome page with a meeting-name field and Start meeting button.

You have installed Jitsi Meet on Ubuntu 24.04, configured the required networking and firewall rules, and secured the platform with HTTPS. This setup is suitable for private meetings, internal company calls, or public conferencing—without relying on third-party services.

For hosting real-time communication platforms with reliability, performance, and full root access, Shape.Host Linux SSD VPS provides a solid and scalable foundation for production deployments.