Scaling Up Your Jitsi with Jitsi Bridges
Complete Guide to Jitsi Bridge Installation, Configuration and Testing
After you make your own Jitsi installation you may need need to scale up your system. The main resource requirement here will be the bandwith. So you will need to distribute your network traffic coming from users audio and video streaming.
Jitsi has a very compact and robust solution for that. Jitsi Bridge. As its name implies it is the bridge between conference users. All streaming flow goes through these bridges. You can install mutiple bridges in different VMs and connect them to your main jitsi server through Jicofo( Jitsi’s Conference Focus component). And Jitsi distributes your streaming workload between these bridges. There is no need for load balancer or any other external component. Very simple and yet practical.
Installing these Jitsi Video Bridge’s are fairly simple but as other Jitsi compenents configuration of the bridges can be somehow confusing. So i hope this manual may help others who wish to set up their multiple Jitsi Bridge instances.
Installation Note: Following setup will be for the first video bridge (we will be named it as jitsibridge1) for other video bridge installations you may go with jitsibridge1, jitsibridge2, etc… Hostname, FQDN, IP parameters in the commands should be replaced respectively.
Table of Contents
Setting up FQDN
sudo hostnamectl set-hostname jitsibridge1.YOUR_DOMAIN
Edit /etc/hostname file as;
Edit /etc/hosts file as;
YOUR_LOCAL_IP_IF_ANY jitsibridge1.YOUR_DOMAIN jitsibridge1
YOUR_PUBLIC_IP jitsibridge1.YOUR_DOMAIN jitsibridge1
127.0.0.1 localhost jitsibridge1.YOUR_DOMAIN
# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
To restart VM run;
After restart to test your FQDN setup run;
Should ping 127.0.0.1 and command output will be similar to;
PING jitsibridge1.YOUR_DOMAIN (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.026 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.041 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.045 ms
Run following commands;
echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
apt-get install apt-transport-https
Note: To go safe, choose Keep current versions of config files if prompted.
Important note: You need to be careful to allow your own ssh port. It is assumed here that shh connection port is 22. You shoud shange with your yours if it is different. Otherwise you may not reconnect to your VM after you logged out.
ufw allow 22/tcp &&
ufw allow 443/tcp &&
ufw allow 4443/tcp &&
ufw allow 10000/udp &&
Video Bridge Setup
Note: As hostname, enter FQDN of Main Jitsi Server (YOUR_JITSI_DOMAIN) when prompted during the install.
apt -y install jitsi-videobridge2
Now you need to configure your newly installed VM to connect your new bridge to your main jitsi server.
Abbreviations will be used in this section;
JMS: Jitsi Main Server
JVB: Jitsi Video Bridge
Switch to root as always;
sudo su -
Edit /etc/jitsi/videobridge/sip-communicator.properties files in your JVB VM.
- Give a name of your bridge with; org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME
- org.jitsi.videobridge.xmpp.user.shard.USERNAME and org.jitsi.videobridge.xmpp.user.shard.PASSWORD should be same as in your JMS sip-communicator.properties file.
- If your JVB VM is behind the NAT so you will set up following two configuration parameters; org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=YOUR_LOCAL_IP
Final content of jitsibridge1 server sip-communicator.properties file should be;
#If your Jitsi set up is behing the NAT comment out the line below
#If your Jitsi setup is behing the NAT set up your local ip othervise comment out
#If your Jitsi setup is behing the NAT set up your public ip othervise comment out
Before testing restart your new Video Bridge to show up your new configuration. To do so run;
Check logs for error.
In JVB; /var/log/jitsi/jvb.log
In JMS; /var/log/jitsi/jvb.log and /var/log/jitsi/jicofo.log
If JVB is connected to JMS, you should see in /var/log/jitsi/jicofo.log something like;
INFO:  org.jitsi.jicofo.bridge.BridgeSelector.log() Added new videobridge: Bridge[jid=jvbbrewery@internal.YOUR_JITSI_DOMAIN/jitsibridge1, relayId=null, region=null, stress=0.00]
Further testing stop all Jitsi Video Bridges in all JVB VMs connected to JMS VM -except you want to test- with;
/etc/init.d/jitsi-videobridge2 stop .
Now you should be using only your newly installed Video Bridge.
To test your conference go to Jitsi-meet from your Chrome browser;
Then from other Chrome browser window (preferably from different PC or mobile app) and go to:
Note: Jitsi uses p2p connection by default when there are two participants in the conference room. In the URL above, query string parameter config.p2p.enabled=false forces jitsi-meet to use JVB connection other than using peer to peer (p2p) connection which is direct connection of conference participants.