How to Create Your Own Zoom with Jitsi in Linux

Spread the love

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.

Content

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

Next, update your package repositories:

sudo apt update && sudo apt upgrade

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

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 -

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

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

sudo apt update && sudo apt upgrade

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

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.

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

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

sudo hostnamectl set-hostname domain.name

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

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

ping "$(hostname)"

Installing Jitsi Meet

Run the following command to install Jitsi Meet:

sudo apt install 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).

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.

Connecting to Your Jitsi Server

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

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.”

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.

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

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.


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.

Subscribe to our newsletter!

Our latest tutorials delivered straight to your inbox

Sign up for all newsletters.
By signing up, you agree to our Privacy Policy and European users agree to the data transfer policy. We will not share your data and you can unsubscribe at any time. Subscribe


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.

Comments are closed