How to Create Your Own Video Conference Server using Jitsi Meet on Ubuntu 18.04 LTS

Jitsi is a set of open source projects that allow you to build a secure video conference system for your team. The core components of the Jitsi project are Jitsi VideoBridge and Jitsi Meet. There are free and premium services that based on Jitsi projects, such as HipChat, Stride, Highfive, Comcast.

Jitsi Meet is the heart of the Jitsi family, its an open source JavaScript WebRTC application that allows you to build and deploy scalable video conference. Its build on top of some jitsi projects, including jitsi videobridge, jifoco, and jigasi.

It has featured video conference, such as desktop and presentation sharing, invite a new member to join a video conference with just a link, and enable collaboration editing using the Etherpad.

In this tutorial, I will show you how to install your own video conference server using Jitsi meet on Ubuntu 18.04 LTS. We will install jitsi meet from the official jitsi repository and make the Nginx web server as a reverse proxy for jitsi services and then secure our jitsi installation using SSL HTTPS.

Prerequisites

  • Ubuntu 18.04 server
  • Root privileges
  • A domain or sub-domain - meet.hakase-labs.io

What we will do?

  1. Install Java OpenJDK
  2. Install Nginx
  3. Install Jitsi Meet
  4. Generate Letsencrypt SSL Certificate
  5. Setup UFW Firewall
  6. Testing

Step 1 - Install Java OpenJDK

The first step we need to do before deploying jitsi meet to our server is by installing java OpenJDK to the system. At least, we need to get the java version 1.8 for jitsi applications installation, and we will install the Java OpenJDK packages from the PPA repository.

Add the OpenJDK PPA repository and install the Java OpenJDK using the apt command below.

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt install openjdk-8-jre-headless -y

Install Java OpenJDK

Now check the Java OpenJDK version when all installation is complete.

java -version

And you will get the java OpenJDK 1.8 installed on the Ubuntu 18.04 server.

OpenJDK 1.8 installed

Step 2 - Install Nginx

In this tutorial, the Nginx web server will be used as a reverse proxy for the jitsi meet application.

Install Nginx web server using the apt command below.

sudo apt install nginx -y

Now start the nginx service and enable it to launch every time on system boot.

systemctl start nginx
systemctl enable nginx

The Nginx web server installation has been completed - it's running on default HTTP port 80.

Install Nginx

Step 3 - Install Jitsi Meet

In this step, we will install jitsi meet packages from the official jitsi repository. We will be using a domain named 'meet.hakase-labs.io' for our installation.

Add jitsi key and repository to the system using the command below.

sudo wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add - 
sudo echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list

Now update the repository and install jitsi meet packages.

sudo apt update
sudo apt install jitsi-meet -y

Install Jitsi Meet

Through the jitsi meet installation, you will be asked about two things:

  • jitsi videobridge domain name - type the domain name for jitsi installation 'meet.hakase-labs.io'.

configuring jitsi

  • SSL certificate for jitsi meet instance - Chose the 'generate a new self-signed certificate'.

Configure SSL certificate

Now we're done for the jitsi meet installation. All packages including jitsi videobridge, jicofo, and nginx virtual host have been automatically installed and setup.

Step 4 - Generate Letsencrypt SSL Certificate

Jitsi meet provides an automatic script for SSL Letsencrypt installation and configuration.

Run the letsencrypt script provided by jitsi meet.

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

The script will install the letsencrypt tool on the server, generate SSL certificates for the jitsi meet domain name 'meet.hakase-labs.io' etc. you need to enter an email address for the Letsencrypt expired notification.

Generate Letsencrypt SSL Certificate

And it will generate all SSL certificates for the jitsi meet domain name in the '/etc/letsencrypt/live' directory.

SSL certs get created with Let's encrypt

Step 5 - Setup UFW Firewall

In this step, we will configure the UFW firewall for the jitsi meet installation. We will open the SSH, HTTP, HTTPS service ports, and open the other range port that needed by jitsi meet 10000/20000 UDP port.

Open those ports by running UFW commands.

ufw allow ssh
ufw allow http
ufw allow https
ufw allow in 10000:20000/udp

Setup UFW Firewall

Now enable the UFW firewall and reload all configuration.

ufw enable
ufw status

Check Firewall status

The UFW firewall configuration is complete.

Step 6 - Testing

We will do two testing through the web browser and an android application that can be downloaded from Google Play.

Test from the web browser.

Open the jitsi meet installation domain name meet.hakase-labs.io and you can see the jitsi meet default home page.

Jitsi video conference welcome page

Type the room name you want to create and click the 'GO' blue button.

And your browser will ask you for the microphone and camera use permission.

Setup camera and microphone for the Video conference

Click 'Allow'.

Now you've already joined to the room.

Join the room

Another screenshot: the Desktop sharing between all members.

Desktop sharing during video conference

Test from Android Device

Download the jitsi meet application from Google Play and join the room.

Following is jitsi meet on android.

Jitsi Meet installation with Nginx web server on Ubuntu 18.04 has been completed successfully.

Reference

Share this page:

Suggested articles

19 Comment(s)

Add comment

Comments

By: eihoward

How can you control room creation?  I need it to be secured by user and password at least.

By: eihoward

To secure conference room creation follow the instructions:

https://github.com/jitsi/jicofo#secure-domain

By: Jeff

Hey great article. It accualy worked. So you have one on installing Jibri? Thanks.

By: Jeff

Hi. So does compleating this tutatorial put me in the NGINX FREE trial?

By: Turkel

Thanks for the great tutorial.

Can you also show how to install jitsi-meet-tokens into debian/ubuntu server

By: andy

Hi Arul , 

I have installed successfully on Ubuntu LTS (latest ) all working well . After couple of minutes of mobile video call , it hangs disconnects - says "something went wrong " try to reconnect . via laptop webrtc, its works and when third person joins it doesnt show the user or anything. Not sure im explaining it clearly . Have you experienced anything like this ?

Regards

By: Vikas

I am getting

Failed authorization procedure. xxxxxx.co (http-01): urn:ietf:params:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from 

http://xxxxxx.co/.well-known/acme-challenge/yEQU8hf4smhRMWAaBfrdHgMx795aHdTnAUsdy04q7dg

 

By: till

This means that Let's encrypt was not able to reach your domain name from outside to. Check your DNS settings and firewall.

By: janvl

Hi,I just followed the instructions everything went like described.Just after installing letsencrypt it said the challenge was not met, so no certificate.

When i give in the url for the subdomain, I get the welcome page from nginx that is  in var/www/html no jitsi.

 

Could it be something is missing on the server, it is a new server with ubuntu 18.04?

 

Regards,Jan

By: sidi

Please I installed it step by step and evry thing is ok till step 4 Generate Letsencrypt SSL Certificate

I didnt have  /etc/letsencrypt/live but  /etc/letsencrypt/. under this directory I only have 5 others directory (account,csr,keys, re newals; renewal-hooks).

Please help me to fix this. Excuse me for my bad english.

 

thank you                                                                                                                                   

 

By: ustoopia

Thanks for the guide! Works great!

By: ferdix

android app is connecting to the room but audio and video are not working

just chatting working

certificate valid (lets enc)

there is no error in logs

what could be the reason please help

By: pfme

I have the same issue, web works great, but apps onlye work in the same Lan network, wan not work, any solutions?

By: Chandra Shekar

Nice information.

By: SamTzu

ALL the problems mentioned here are DNS related (including LetsEncrypt). Check your DNS settings (both device and server.) Ping from terminal and check IP.

By: Muhammad tar

Try to install on VM Instant Cloud. After run letsencrypt script, installing phython. then no respon..

By: Roger Jaffe

I installed Jitsi on a Digital Ocean droplet and couldn't connect using https.  The problem was the firewall configuration.  Running sudo ufw allow 'Nginx Full' got it working, though now Chrome complains about Let's Encrypt certificates

By: Jitsi meet reconnects every 30 seconds

Hello 

My jitsi meet server reconnects every 30 seconds when more than one person is participating in the meet 

How can I solve this issue?

Thanks

By: bhupendra singh

Thanks for the guide! Works great!