Jitsi-Meet Docker, extra JVB on another machine

Hello, I have read many posts on the subject but none seemed to give me the full answer.

I have a main instance of Jitsi-Meet-Docker on a server. I want to add a spair JVB (or many spairs) on another server to do load balancing and I would like to use docker on the JVB only instance too

Is there a clear, functional guide to do so?

Someone? I can’t find the way for now!

I am working on it, once done, I’ll write a post here. Meanwhile, even if you come across anything, please update it here or in a new post

To scale the JVB, you need to follow Octo approach. The load balancing is based on BRIDGE_SELECTION_STRATEGY. It offers two approaches

  1. SplitBridgeSelectionStrategy: distribute the participants equally on all JVBs(round-robin manner)
  2. RegionBasedBridgeSelectionStrategy: distribute participants based on Region in which participants are from and sent that participants to Region specific JVB(lets say participant joining from region1 and JVb is also deployed in region1 then participants move to region1 jvb). You can deploy the JVB in a specific region using org.jitsi.videobridge.REGION={{ .Env.OCTO_REGION | default "Region1" }} setting.

Sorry, There’s no official document available for Octo. But there is a thread in the community that you can follow. I shared all my Octo journey in that thread.

link: How to confg JVB for octo in docker/docker-swarm?

1 Like

I know Octo was a way to use multiple JVBs with special requirements… But we used to be able to simply connect an extra JVB through jicofo… Does the “old way” still function?

Not sure about the old way but still for Octo we have to set BRIDGE_SELECTION_STRATEGY in Jicofo config. then Jicofo splits the traffic based on this strategy.

Okay… i am pretty certain Octo is not needed…
When I compare my “bare metal” install to the docker one, it seems very similar and I did not use Octo on the bare metal install…

At the moment, I get this error when trying to connect to the server:

rg.jivesoftware.smack.SmackException$ConnectionException: The following addresses failed: ‘conference.eventboum.com:5222’ failed because: conference.eventboum.com/3.96.81.21 exception: java.net.ConnectException: Connection refused

The logs on my main server don’t ever talk about this user trying to connect

I copied over the password from my main instance and use jvb as the user for both… Like in my bare-metal install…

The setup:
Everything is on AWS EC2
I reverted every instance on Ubuntu 18.04 to be sure it was not the issue
The main instance runs on docker
The extra JVB runs on bare metal to make sure it is not a docker issue
Open ports are the same on the working instance as on the docker one…
Is there a setting in the main instance I have to switch to activate external JVBs ?
What am I missing here?

I invoke @damencho as a last resort Jitsi Guru… can you help ? :stuck_out_tongue:

Port 5222 is not open for connection for that machine, or prosody is listening on localhost only on that port.

Where can I change this setting in a docker environment?
The host machine has no firewall, everything is wide open!

In prosody config … Check docs for prosody, hot to do it in docker, I have no idea :slight_smile:

See… I knew invoking @damencho would at least give me directions!!!
Thank you, I am diving in again!

Oh my god it works!!!

all that was needed was to add this in the docker-compose.yml file !

image

No Octo shenanigans, just a missing parameter in the docker-compose file!

Of course this is not applicable for someone who would want load balance with more precise control (geographical location etc.)… All I need, is to split the rooms in multiple JVBs for a large event with 1500+ users in HD1080p… Now I have it!

I will detail my installation for future users

1 Like