How to Create Your Own Zoom with Jitsi in Linux

Install Jitsi Linux 00 Featured Image

Jitsi is an open-source video conferencing framework for Linux. It powers Jitsi Meet, an easy-to-use video conferencing server and client for Linux, Android and iOS. Here we show you how to install a Jitsi server on Ubuntu, how to use Jitsi Meet in your web browser and start your first video conference.

Why Use Jitsi?

Jitsi is a collection of JavaScript projects that aim to create a free and accessible conferencing platform. Unlike other Zoom alternatives, running a Jitsi server is completely free of charge.

Further, Jitsi also allows you to use your own hardware for your video conference service. This gives you the flexibility on how you want to deploy your service and how much resources you want to dedicate to it. Most importantly, Jitsi allows you to take control of your means of communication.

Installing Jitsi

The first step in installing Jitsi is to enable Ubuntu’s “universe” repository. This will ensure that you can download and install all of the available packages for the system. Do this by running the following command:

sudo add-apt-repository universe
Install Jitsi Linux 04 Include Universe Repo

Next, update your package repositories:

sudo apt update && sudo apt upgrade
Install Jitsi Linux 05 Force Update

Install the dependencies for Jitsi:

sudo apt install gnupg2 nginx-full curl wget apt-transport-https openjdk-11-jdk openjdk-11-jre lua5.2 certbot python3-certbot-nginx
Install Jitsi Linux 06 Include Deps

Adding External Repositories

Once those are done, import two external repositories to your system to allow you to install both Prosody and Jitsi Meet.

The “prosody” package serves as a status and text backbone for the program. The “jitsi-meet” package contains the main binary file as well as the utilities and scripts that form the entire conferencing suite.

To include the Prosody repository, run the following commands:

echo deb http://packages.prosody.im/debian $(lsb_release -sc) main | sudo tee -a /etc/apt/sources.list
wget https://prosody.im/files/prosody-debian-packages.key -O- | sudo apt-key add -
Install Jitsi Linux 07 Include Prosody Repo

Import the Jitsi repository by running these two commands:

curl 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 > /dev/null
Install Jitsi Linux 08 Include Jitsi Repo

Lastly, refresh your repository listings by performing another system upgrade:

sudo apt update && sudo apt upgrade
Install Jitsi Linux 09 Force Update Repos

Configuring Your Firewall

Jitsi requires you to have a number of ports open and accessible at all times. You can open these ports by running the following commands:

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
Install Jitsi Linux 10 Update Firewall Rules 1

Configuring Your Domain and FQDN

Next, configure your domain name to redirect any incoming request from your domain to your machine.

In your domain registrar, go your domain’s configuration page.

Install Jitsi Linux 12 Account Manager

Update the DNS record and add an “A” record to point to the hostname and IP address of your server.

Install Jitsi Linux 15 Filled Dns Record A Record 1

Configure your machine’s FQDN by running the following command:

sudo hostnamectl set-hostname domain.name
Install Jitsi Linux 17 Set New Hostname 1

Append your machine’s public IP address to its “/etc/hosts” file by running the following command:

echo "server.public.ip.address domain.name" | sudo tee -a /etc/hosts
Install Jitsi Linux 18 Set New Fqdn 2

Check whether your machine’s FQDN works by sending a simple ping using your own machine’s name:

ping "$(hostname)"
Install Jitsi Linux 19 Self Ping Fqdn

Installing Jitsi Meet

Run the following command to install Jitsi Meet:

sudo apt install jitsi-meet
Install Jitsi Linux 20 Installing Jitsi Meet

While the installation process for Jitsi is mostly automatic, there are instances where you need to provide some information about your server. For example, the installer script will ask you for your machine’s FQDN (the domain name that you configured earlier that points to your server).

Install Jitsi Linux 21 Provide Fqdn

Next, the installer script will ask for your SSL certificate. Either let it create its own using Let’s Encrypt’s Certbot or generate your own using OpenSSL.

Install Jitsi Linux 22 Ssl Select

Connecting to Your Jitsi Server

Once the installation is done, access your Jitsi server by typing its domain name in your web browser.

Install Jitsi Linux 30 Running Jitsi Server

From here, either create a new video conference or join an existing one. To do the former, write a name for your video conference, then click “Start meeting.”

Install Jitsi Linux 31 Create New Room

This will create a new room inside your Jitsi server. To add new users in your video conference, click the Participants icon on the page’s bottom bar.

Install Jitsi Linux 32 Click Participants Button

In the sidebar panel, press the “Invite Someone” button.

Install Jitsi Linux 33 Click Invite New User

This will bring up a smaller floating window where you can choose how you will share your video conference. The easiest way is to copy the meeting link and share it with your contacts.

Install Jitsi Linux 34 Copy Conference Link Button
Install Jitsi Linux 35 Multi User Conference

Frequently Asked Questions

Are there any drawbacks to using a self-signed certificate for Jitsi?

One of the main issues with using a self-signed certificate is that every modern web browser will report your site as insecure. This can be a problem if you are hosting a public Jitsi instance and cannot advise your users to ignore security warnings.

Aside from that, creating a self-signed certificate can introduce a number of SSL-related errors, as any connecting user will not be able to reliably verify whether your encrypted connection is valid.

Why am I not able to start multi-user video calls?

This is most likely due to a routing problem on your local connection. The solution is to check whether all of the ports that Jitsi uses are open in your machine. You also need to make sure that you have forwarded these ports properly in your local router.

How can I fix slow and laggy audio and video streams whenever I run a large Jitsi conference?

The most common cause for this is insufficient system resources. One way to fix this is by modifying your server’s “/etc/systemd/system.conf.”

Inside, change the values of DefaultLimitNOFILE, DefaultLimitNPROC and DefaultTasksMax to 65000, then restart your machine by running sudo reboot to apply your new settings.

Image credit: Unsplash. All alterations and screenshots by Ramces Red.

Is this post useful?
Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Ramces Red
Ramces Red - Staff Writer

Ramces is a technology writer that lived with computers all his life. A prolific reader and a student of Anthropology, he is an eccentric character that writes articles about Linux and anything *nix.