fbpx

How to install Jitsi Meet on Google Cloud

Introduction

Jitsi is a collection of open source projects that provide video conferencing capabilities that are secure, easy to use and easy to host by yourself.

Below are the open source projects:

  • Jitsi Meet – high quality, scalable video conferencing, using WebRTC
  • Jitsi Videobridge (jvb) – route video streams among participants of a video conference.
  • Jitsi Conference Focus (jicofo) – server side component that manages media sessions between participants in a conference.
  • Jitsi Gateway to SIP (jigasi) – server side app that allows regular SIP clients to join Jitsi Meet conferences
  • Jibri – set of tools for recording or streaming a Jitsi Meet conference.
  • Prosody – XMPP server used for signalling

Architecture

Installation, in an Ubuntu instance

Step 1: Create an account in Google Cloud Platform and sign in. This is Google’s platform for it’s cloud services. You can create an account for free and get $300 in credits for 1 year. Add a credit card to activate it.

Step 2: Go to Google Compute Engine.

Step 3: Launch an Ubuntu instance with 1 vCPU and at least 2 GB RAM. Give it 2 Balanced SSD disks:

  • 10 GB root volume, used for the root file system
  • 50 GB data volume, used for storing recordings (optional)

Step 4: Go to VPC Network > External IP Addresses

Change Ephemeral > Static and Reserve a new IP address.

Step 5: Go to VPC Network > Firewall

Create firewall > Name: jitsi-meet

Fill in target tags, source IP ranges, Protocols and ports as shown.

Step 6: Change your DNS settings to point your subdomain to the jitsi-meet instance.

Go to Network Services > Cloud DNS > Click your zone

Add record set > A record > give your name and IP address as shown.

Log in to the jitsi-meet instance by SSH.

Add the Universe repository and update the apt cache.

sudo apt update
sudo apt install apt-transport-https
sudo apt-add-repository universe
sudo apt update

Set the hostname to what you added in DNS. Reboot the instance to apply the hostname.

Assuming that your domain name is “meet.cloud.tech”

sudo hostnamectl set-hostname meet
sudo vim /etc/hosts
---
127.0.0.1 localhost
104.199.251.100 meet.cloud.tech meet
---
sudo reboot

Add the Jitsi repository and update the apt cache.

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
sudo apt update

Configure the firewall ufw (Optional)

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 4443/tcp
sudo ufw allow 10000/udp
sudo ufw allow 22/tcp
sudo ufw enable
sudo ufw status verbose

Install Jitsi Meet. During installation, give the full hostname when asked and select “Generate a new self-signed certificate”

sudo apt install jitsi-meet

Create a Lets-Encrypt Certificate for SSL

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

Authentication for meeting host

Jitsi supports authentication for the person who hosts a meeting (moderator). In this case, the moderator has to enter his username and password in order to start and host a meeting. This is how you configure it:

Edit the prosody configuration file and add the authentication line to the Virtualhost section:

sudo vim /etc/prosody/conf.avail/meet.cloud.tech.cfg.lua
---
authentication = "internal_hashed"

Add the following Virtualhost to the end of the same file

VirtualHost "guest.meet.cloud.tech"
    authentication = "anonymous"
    c2s_require_encryption = false

Edit this file and add the anonymousdomain line to the Hosts section:

sudo vim /etc/jitsi/meet/meet.cloud.tech-config.js
---
anonymousdomain: 'guest.meet.cloud.tech',

Add this line at the end of the below file

sudo vim /etc/jitsi/jicofo/sip-communicator.properties
---
org.jitsi.jicofo.auth.URL=XMPP:meet.cloud.tech

Restart all services

# Restart all services
sudo service prosody restart
sudo service jicofo restart
sudo service jitsi-videobridge2 restart
sudo service nginx restart

Add a user

# Add a user
sudo prosodyctl register melvincv meet.mvcloud.tech passwd3210
sudo prosodyctl register user server password
# Remove a user
sudo prosodyctl unregister user server

Authentication reference

Here are the log files if you need to troubleshoot…

# Log files
# Prosody
tail -f /var/log/prosody/prosody.log

# Jicofo
tail -f /var/log/jitsi/jicofo.log

# Jitsi video bridge
tail -f /var/log/jitsi/jvb.log

# nginx
tail -f /var/log/nginx/error.log

Now, go to https://your-domain and…

Enjoy Jitsi Meet!

Leave a Reply