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
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 188.8.131.52 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
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
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!