How To Install Jitsi Meet On Ubuntu

Jitsi Meet is an open source application and so it is easy to integrate into other projects that want to include video calling capabilities. In this tutorial you will learn how to set up Jitsi Meet server so you can securely host an unlimited number of guests at your conferences.

Elliot Cooper • Jan 18, 2021

Introduction

Jitsi Meet is an open source, high quality, video conferencing application that is 100% end-to-end encrypted.  You can host a Jitsi Meet instance on your own server, which means that you retain complete control of all your personal data.

Accessing your Jitsi Meet video conference does not require an account or signing up anywhere. You can also host as many participants in your video conference for as long as you want whenever you want.

Jitsi Meet also comes with advanced features like desktop sharing and chat that are normally only found on proprietary video conference applications.

s cbfaefbafbbbeccacbeaeeaa jitsi meet desktop

Prerequisites

Before you begin this guide, should you have the following:

  • A beginner level familiarity with the Linux command line. You should be acquainted with moving around the file system, installing packages and editing files.

  • An Ubuntu 20.04 server. A single core virtual machine is sufficient to run Jitsi Meet.

  • A hostname name that resolves to your server’s public IP address. This guide will use jitsi.example.com as the example hostname.

  • A non-root user that has sudo privileges.

Log into your server as your non-root user to start the next section.

Configuring The Server Hostname

Jitsi Meet requires that your server’s hostname matches the hostname that you will use for your video conference server.

Set your server’s host name with the following command:

sudo hostnamectl set-hostname <HOSTNAME>

Next, you need to edit your /etc/hosts file to locally resolve your Jitsi Meet server’s hostname name to your server’s public IP address. First, open /etc/hosts with a text editor, here the nano editor is used:

sudo nano /etc/hosts

Then, add a line that has the following form to the bottom of this file:

<PUBLIC IP> <HOSTNAME>

Using jitsi.example.com and the IP address 1.2.3.4 this line looks like:

1.2.3.4 jitsi.pinktuxedo.net

Install Jitsi Meet

The Jitsi developers have created a custom package repository for Ubuntu that contains the latest versions of all the Jitsi Meet packages. This allows you to install and maintain the latest Jitsi Meet packages on your system using the Ubuntu’s package manager apt.

First, add the Jitsi repository to your system by creating a custom sources file by opening it with a text editor:

sudo nano /etc/apt/sources.list.d/jitsi-stable.list

Next, add the following line to this file:

deb https://download.jitsi.org stable/

Now, download the Jitsi repositories GPG key:

curl https://download.jitsi.org/jitsi-key.gpg.key -o jitsi-key.gpg.key

Then add it to your system:

sudo apt-key add jitsi-key.gpg.key

Next, make sure that you have the Ubuntu universe repository enabled as you will need some packages from there:

sudo apt-add-repository universe

This command is safe to run even if you already have the universe repository enabled.

Finally, update your package manager to grab the latest package list from the Jitsi repository and then install Jitsi Meet:

‍_‍_You will be prompted with questions twice during the installation of Jitsi Meet. The first prompt asks you for your server’s hostname and it looks like this:

s cbfaefbafbbbeccacbeaeeaa jitsi install enter hostname

When you see this dialog box, type in the hostname then hit TAB to highlight <OK> and then hit ENTER to submit the hostname name.

The next prompt asks you if you want to create a self-signed SSL certificate or use an already existing certificate and looks like this:

how-to-install-jitsi-meet-on-ubuntu-img-1

You will create a new SSL certificate for your Jitsi Meet server in the next section, so select the first option as shown in the image.

The installation process will complete with no further prompts.

Generate An SSL Certificate

An SSL certificate is a web technology that encrypts your private traffic as it travels across the internet. Any time that you use a website with HTTPS you are using SSL certificates.  Jitsi Meet uses an SSL certificate to encrypt your conference traffic, both video and chat, keeping it private and secure.

The Jitsi Meet installation package includes a script to simplify the registration and configuration of the SSL certificate.

Run this script with the following command:

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

You will be prompted to enter an email address when you run this script with the following prompt:

s cbfaefbafbbbeccacbeaeeaa ssl reg enter email

This email address will only be used to email you certificate expiry notification and other important security related information. You must enter an email address to proceed.

The SSL registration process will be completed with no more prompts.

Configure UFW Firewall (optional)

If you have the UFW firewall enabled on your Ubuntu 20.04 server then you will need to open the ports that Jitsi Meets needs to run. These ports are:

TCP 80,443,5349

UDP 10000,3478

The following UFW commands will open all of these ports for you:

If you already have any of these ports open, these commands will not cause any problems.

Password Protect Jitsi Meet

The out-of-the-box configuration for Jitsi Meet is that anyone that can access your server’s IP on the internet can start a video conference and invite anyone they want to join it. This can be a problem if you host your Jitsi Meet instance on a publicly accessible server as it will allow strangers to use your bandwidth and system resources.

In this section, you will lock your Jitsi Instance so that only registered administrators are able to start meetings thereby locking down your server. You will do this by making some edits to the Jitsi Meet configuration files.

First, open /etc/jitsi/jicofo/sip-communicator.properties with a text editor:

sudo nano /etc/jitsi/jicofo/sip-communicator.properties

and add the following line under file’s existing line:

org.jitsi.jicofo.auth.URL=XMPP:<DHOSTNAME>

Substituting jitsi.example.com for <HOSTNAME> gives us:

org.jitsi.jicofo.auth.URL=XMPP:jitsi.example.com

Next, edit /etc/jitsi/meet/<HOSTNAME>-config.js

sudo nano /etc/jitsi/meet/<HOSTNAME>-config.js

and edit this line:

// anonymousdomain: 'guest.example.com',

To look like the following:

anonymousdomain: 'guest.<HOSTNAME>',

Using jitsi.example.com would produce the line:

anonymousdomain: 'guest.jitsi.exmaple.com',

Finally, open this file /etc/prosody/conf.avail/<HOSTNAME>.cfg.lua in an editor:

sudo nano /etc/prosody/conf.avail/<HOSTNAME>.cfg.lua

Then, scroll down to the first VirtualHost section and edit this line:

authentication = "anonymous"

So it reads:

authentication = "internal_plain"

Finally, scroll down to the end of the file and add the following section under the last line:

Register An Admin User

Your Jitsi Meet instance is almost ready to use. All that remains is to register an admin user (or users) that will be able to create meetings.

Use the following command to register an admin user:

sudo prosodyctl register <USER> <HOSTNAME> <PASSWORD>

If we substitute user Joe at jitsi.example.com with the password VeryStrongPass this gives us the command:

sudo prosodyctl register Joe jitsi.exmaple.com VeryStrongPass

Finally, restart all the Jitsi Meet services:

Using Jitsi Meet

Start your first video conference by entering https://<HOSTNAME> into your favorite browser. All browsers are supported but you will get the best experience with Google Chrome.

You will be greeted with the landing page which is also where you can start a new meeting:

s cbfaefbafbbbeccacbeaeeaa jitsi web interface

As soon as you hit the GO button, the meeting will start with a randomly chosen name. In the image above, the meeting will be called ThoroughNailsEmailPrecisely.

You can choose any name you want by typing it in where ThoroughNailsEmailPrecisely is shown in the image.

This name is important because it forms part of the invitation URL that you give to the other participants e.g.

https://jitsi.examplecom/ThoroughNailsEmailPrecisely

After you click GO the meeting will begin. You will immediately see a dialog box that asks if you are the host:

s cbfaefbafbbbeccacbeaeeaa jitsi web waiting for host

Only an admin that you registered on the command line will be able to start a meeting. Click I am the host which will take you to the following dialog:

s cbfaefbafbbbeccacbeaeeaa jitsi web user pass

When you see this, enter the username and password that you registered on the command line then click OK.

The meeting will now begin and the other participants can join you.

Once the meeting has begun, if you would like to require a password for participants to join the meeting, then click on the shield icon on the bottom right of the screen:

s cbfaefbafbbbeccacbeaeeaa jitsi web shield

In the dialog that follows, click on Add password and enter a password:

s cbfaefbafbbbeccacbeaeeaa jitsi web add password

You will need to give this password to all the participants before they join your video conference.

Conclusion

Your Jitsi Meet server is now set up and ready for your first video conference. You can securely host an unlimited number of guests at your conferences.

Jitsi Meet is an open source application and so it is easy to integrate into other projects that want to include video calling capabilities. The official documentation includes three integrations into Dropbox, Microsoft Outlook, Google Calendar and YouTube here.

Elliot Cooper

CometChat

He has worked as a Linux systems administrator and open source technical content creator for over 20 years. He passionately advocates for open source software and has an open source attitude to knowledge sharing.

Try out CometChat in action

Experience CometChat's messaging with this interactive demo built with CometChat's UI kits and SDKs.