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.
Before you begin this guide, should you have the following:
Log into your server as your non-root user to start the next section.
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 22.214.171.124 this line looks like:
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:
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:
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.
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:
You will be prompted to enter an email address when you run this script with the following prompt:
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.
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:
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.
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:
Substituting jitsi.example.com for <HOSTNAME> gives us:
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:
Using jitsi.example.com would produce the line:
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:
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:
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:
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.
After you click GO the meeting will begin. You will immediately see a dialog box that asks if you are the 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:
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:
In the dialog that follows, click on Add password and enter a password:
You will need to give this password to all the participants before they join your video conference.
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.