How to Install Jitsi Meet on Ubuntu 20.04 (Video Conferencing Server)

How to Install Jitsi Meet on Ubuntu 20.04 (Video Conferencing Server). In this article we will introduce what Jitsi Meet is with the features and will follow onto installation on Ubuntu. Let’s start!

What is Jitsi Meet

Jitsi Meet is a free, open source and fully encrypted video conferencing solution. It is a cross platform and can run on Linux, Android, Windows, and Mac OS. It is an alternate solution for other applications such as Zoom, Skype or Google Meet. It is based on JavaScript and provides multi person video conference rooms that you can access from any web browser. It provides end to end encryption for secure communications so that no one can snoop on the call.

Jitsi Features

  • Free and open source.
  • Support for all web browsers.
  • End to End Encryption.
  • HD audio and video.
  • Virtual backgrounds.
  • Chat with private conversations.
  • Content sharing.
  • Screen sharing.
  • Lock a room with a password.
  • Streaming a conference on YouTube live.
  • Shared text document based on Etherpad.
  • Integration in other apps / websites.

Follow this post to learn how to install Jitsi Meet on Ubuntu 20.04.

Install Jitsi Meet on Ubuntu 20.04 (Video Conferencing Server)

Add Jitsi Meet Repository

By default, the Jitsi Meet package is not included in the Ubuntu default repository. So you will need to add the Jitsi official repository to the APT.

First, install all the required dependencies with the following command:

				
					apt-get install wget curl gnupg2 apt-transport-https -y
				
			

Once all the dependencies are installed, add the Jitsi repository to the APT:

				
					echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
				
			

Next, download and add the Jitsi GPG key using the following command:

				
					wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
				
			

Once you are finished, update the repository cache with the following command:

				
					apt-get update -y
				
			

Once your repository is up to date, you can proceed to install Jitsi Meet on your server.

Install Jitsi Meet on Ubuntu

You can now install Jitsi Meet by running the following command:

				
					apt-get install jitsi-meet -y
				
			

During the installation, you will be asked to provide your domain name as shown below:

Provide your valid domain name and click on the Ok. You will be asked to choose SSL certificate for Jitsi Meet:

Select “Generate a new self-signed certificate” option and click on the Ok button to finish the Jitsi Meet installation.

Secure Jitsi Meet with Let's Encrypt SSL

It is recommended to secure the Jitsi Meet with Let’s Encrypt SSL certificates to encrypt the call traffic. Jitsi Meet comes with a script to automatically download Let’s Encrypt SSL certificates for your domain. You can run this script as shown below:

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

You will be asked to provide your email address as shown below:

				
					-------------------------------------------------------------------------
This script will:
- Need a working DNS record pointing to this machine(for domain jitsi.linuxbuz.com)
- Download certbot-auto from https://dl.eff.org to /usr/local/sbin
- Install additional dependencies in order to request Let’s Encrypt certificate
- If running with jetty serving web content, will stop Jitsi Videobridge
- Configure and reload nginx or apache2, whichever is used
- Configure the coturn server to use Let's Encrypt certificate and add required deploy hooks
- Add command in weekly cron job to renew certificates regularly

You need to agree to the ACME server's Subscriber Agreement (https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf)
by providing an email address for important account notifications
Enter your email and press [ENTER]: hitjethva@gmail.com

				
			

Provide your valid email address and hit Enter to install the Let’s Encrypt SSL for Jitsi Meet. Once the installation is finished, you will get the following output:

				
					Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator webroot, Installer None
Obtaining a new certificate
Performing the following challenges:
http-01 challenge for jitsi.linuxbuz.com
Using the webroot path /usr/share/jitsi-meet for all unmatched domains.
Waiting for verification...
Cleaning up challenges
Running deploy-hook command: /etc/letsencrypt/renewal-hooks/deploy/0000-coturn-certbot-deploy.sh
Output from deploy-hook command 0000-coturn-certbot-deploy.sh:
Configuring turnserver


IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/jitsi.linuxbuz.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/jitsi.linuxbuz.com/privkey.pem
Your cert will expire on 2022-07-14. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:

Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le

				
			

Secure Jitsi Conference Room Creation

By default, Jitsi Meet allows anyone to create conference rooms. For security reasons, it is recommended to configure your Jitsi Meet server to only allow registered users to create conference rooms.

You can configure it by editing the following file:

				
					nano /etc/prosody/conf.avail/jitsi.linuxbuz.com.cfg.lua
				
			

Find the following line:

				
					authentication = "anonymous"
				
			

Replace it with the following line:

				
					authentication = "internal_plain"
				
			

Next, add the following line at the end of the file:

				
					VirtualHost "guest.jitsi.linuxbuz.com"
authentication = "anonymous"
c2s_require_encryption = false
				
			

Save and close the file then edit another configuration file:

				
					nano /etc/jitsi/meet/jitsi.linuxbuz.com-config.js
				
			

Uncomment the following line:

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

Create an SIP configuration file:

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

Add the following line to enable the authentication:

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

Save and close the file then create a user for your Jitsi Meet server:

				
					prosodyctl register user jitsi.linuxbuz.com password
				
			

Once you are finished, restart all Jitsi services with the following command:

				
					systemctl restart prosody.service jicofo.service jitsi-videobridge2.service
				
			

You can check the status of all the services using the following command:

				
					systemctl status prosody.service jicofo.service jitsi-videobridge2.service
				
			

You will get the following output:

				
					● prosody.service - Prosody XMPP Server
     Loaded: loaded (/lib/systemd/system/prosody.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-04-15 06:39:58 UTC; 5s ago
       Docs: https://prosody.im/doc
   Main PID: 7914 (lua5.2)
      Tasks: 1 (limit: 4686)
     Memory: 13.0M
     CGroup: /system.slice/prosody.service
             └─7914 lua5.2 /usr/bin/prosody

Apr 15 06:39:58 ubuntu2004 systemd[1]: Started Prosody XMPP Server.
Apr 15 06:39:58 ubuntu2004 prosody[7914]: portmanager: Error binding encrypted port for https: No certificate present in SSL/TLS configuratio>
Apr 15 06:39:58 ubuntu2004 prosody[7914]: portmanager: Error binding encrypted port for https: No certificate present in SSL/TLS configuratio>

● jicofo.service - LSB: Jitsi conference Focus
     Loaded: loaded (/etc/init.d/jicofo; generated)
     Active: active (running) since Fri 2022-04-15 06:39:58 UTC; 6s ago
       Docs: man:systemd-sysv-generator(8)
    Process: 7873 ExecStart=/etc/init.d/jicofo start (code=exited, status=0/SUCCESS)
      Tasks: 39 (limit: 4686)
     Memory: 135.3M
     CGroup: /system.slice/jicofo.service
             └─7878 java -Xmx3072m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp -Djdk.tls.ephemeralDHKeySize=2048 -Dconfig.file=/etc>

Apr 15 06:39:58 ubuntu2004 systemd[1]: Starting LSB: Jitsi conference Focus...
Apr 15 06:39:58 ubuntu2004 jicofo[7873]: Starting jicofo: jicofo started.
Apr 15 06:39:58 ubuntu2004 systemd[1]: Started LSB: Jitsi conference Focus.

● jitsi-videobridge2.service - Jitsi Videobridge
     Loaded: loaded (/lib/systemd/system/jitsi-videobridge2.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-04-15 06:39:58 UTC; 5s ago
    Process: 7903 ExecStartPost=/bin/bash -c echo $MAINPID > /var/run/jitsi-videobridge/jitsi-videobridge.pid (code=exited, status=0/SUCCESS)
   Main PID: 7902 (java)
      Tasks: 53 (limit: 65000)
     Memory: 128.0M

				
			

Configure UFW Firewall

If the UFW firewall is installed and enabled on your server then you will need to allow Jitsi ports through the UFW. You can allow all of them by running the following command:

				
					ufw allow 80/tcp
ufw allow 443/tcp
ufw allow 4443/tcp
ufw allow 10000/udp
ufw allow 22/tcp
ufw enable
				
			

You can now check the status of the UFW firewall using the following command:

				
					ufw status
				
			

You will get the following output:

				
					Status: active

To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
80/tcp ALLOW Anywhere
443/tcp ALLOW Anywhere
4443/tcp ALLOW Anywhere
10000/udp ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
80/tcp (v6) ALLOW Anywhere (v6)
443/tcp (v6) ALLOW Anywhere (v6)
4443/tcp (v6) ALLOW Anywhere (v6)
10000/udp (v6) ALLOW Anywhere (v6)

				
			

Access Jitsi Meet Web Interface

Now, open your web browser and access the Jitsi Meet web interface using the URL https://jitsi.linuxbuz.com. You should see the following page:

Provide your room name and click on the Start meeting. You will be asked to authenticate Jitsi Meet:

Provide your username, password, and click on the Login button to authenticate Jitsi Meet. You should see the Jitsi Meet dashboard on the following page:

Great job you have followed the steps and learned how to Install Jitsi Meet on Ubuntu 20.04 (Video Conferencing Server)!

How to Install Jitsi Meet on Ubuntu 20.04 Conclusion

In this post, we explained how to install Jitsi Meet on Ubuntu 20.04. We also explained how to secure the Jitsi Meet with Let’s Encrypt SSL. You can now host your own video conferencing website and start meeting with your team.

Avatar for Hitesh Jethva
Hitesh Jethva

I am a fan of open source technology and have more than 10 years of experience working with Linux and Open Source technologies. I am one of the Linux technical writers for Cloud Infrastructure Services.

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x