- 1. About
- 2. JMS (Jitsi Meet Server)
- 3. Additional JVB (Jitsi Videobridge) node
- 4. Additional Jibri node
- 5- FAQ
This tutorial provides step by step instructions on how to create a Jitsi
cluster based on Debian 11 Bullseye
.
Create or install a Debian 11 Bullseye
server for each node in this tutorial.
Please, don't install a desktop environment, only the standard packages...
Run each command on this tutorial as root
.
JMS
is a standalone server which contains jitsi-meet
, prosody
, jicofo
,
jvb
and coturn
services. If the load level is low then JMS
can operate
without an additional JVB
node.
Additional JVB
nodes can be added in the future if needed.
For the server side recording and live streaming features, you will need to add
additional jibri
nodes.
Complete the following steps before starting the JMS
installation.
At least 4 cores and 8 GB RAM
A resolvable host address is required for JMS
and this address should point to
this server. Therefore, create the DNS A record
for JMS
before starting the
installation.
Let's say the host address of JMS
is jitsi.mydomain.corp
then the following
command should resolv the server IP address:
host jitsi.mydomain.corp
>>> jitsi.mydomain.corp has address 1.2.3.4
A resolvable host address is required for TURN
and this address should point
to this server. Therefore, create the DNS CNAME record
for TURN
before
starting the installation. The CNAME record
should be an alias for JMS
which
is jitsi.mydomain.corp
in our example.
Let's say the host address of TURN
is turn.mydomain.corp
then the following
command should resolv the server IP address:
host turn.mydomain.corp
>>> turn.mydomain.corp is an alias for jitsi.mydomain.corp.
>>> jitsi.mydomain.corp has address 1.2.3.4
If the JMS
server is behind a firewall, open the following ports:
- UDP/10000
- TCP/80
- TCP/443
- TCP/5222 (if you will have an additional
JVB
or an additionalJibri
)
Download eb
(the installer) and eb-jitsi.conf
(the installer config
file):
wget -O eb https://raw.githubusercontent.com/chimjk/jitsi-bulleye-base/main/installer/eb
wget -O eb-jitsi.conf https://raw.githubusercontent.com/chimjk/jitsi-bulleye/main/installer/eb-jitsi.conf
Set the host addresses on the installer config file eb-jitsi.conf
. The host
addresses must be FQDN, not IP address... Let's say the host address of JMS
is
jitsi.mydomain.corp
and the host address of TURN is turn.mydomain.corp
echo export TURN_FQDN=turn.mydomain.corp >> eb-jitsi.conf
echo export JITSI_FQDN=jitsi.mydomain.corp >> eb-jitsi.conf
bash eb eb-jitsi
Let's say the host address of JMS
is jitsi.mydomain.corp
and the host
address of TURN
is turn.mydomain.corp
. To set the Let's Encrypt certificate:
set-letsencrypt-cert jitsi.mydomain.corp,turn.mydomain.corp
Be careful, no space between host addresses.
Reboot the server
reboot
A standalone JMS
installation is good for a limited size of concurrent
conferences but the first limiting factor is the JVB
component, that handles
the actual video and audio traffic. It is easy to scale the JVB
pool
horizontally by adding as many as JVB
nodes when needed.
Complete the following steps before starting the JVB
installation.
At least 4 cores and 4 GB RAM
If the JVB
server is behind a firewall, open the following ports:
- UDP/10000
- TCP/22 (at least for
JMS
server) - TCP/9090 (at least for
JMS
server)
If openssh-server
is not installed on the JVB
node, install it first!
apt-get update
apt-get install openssh-server curl
Add the JMS
public key to the JVB
node.
mkdir -p /root/.ssh
chmod 700 /root/.ssh
curl https://jitsi.mydomain.corp/static/jms.pub >> /root/.ssh/authorized_keys
Let's say the IP address of the JVB
node is 100.1.2.3
. On the JMS
server:
add-jvb-node 100.1.2.3
For the server side recording and live streaming features, install additional
jibri
nodes.
Complete the following steps before starting the Jibri
installation.
At least 4 cores and 4 GB RAM
The Jibri
node needs the snd_aloop
module. Therefore check the kernel first.
If the following command has an output, this means that the kernel has no
support for snd-aloop
.
modprobe snd-aloop
If the Jibri
server is behind a firewall, open the following ports:
- TCP/22 (at least for
JMS
server)
If openssh-server
is not installed on the Jibri
node, install it first!
apt-get update
apt-get install openssh-server curl
Add the JMS
public key to the Jibri
node.
mkdir -p /root/.ssh
chmod 700 /root/.ssh
curl https://jitsi.mydomain.corp/static/jms.pub >> /root/.ssh/authorized_keys
Let's say the IP address of the Jibri
node is 200.7.8.9
. On the JMS
server:
add-jibri-node 200.7.8.9
The cloud kernel used in most cloud machines has no support for the snd_aloop
module. Execute the following commands as root
to install the standart Linux
kernel on a Debian system.
apt-get update
apt-get install linux-image-amd64
apt-get purge 'linux-image-*cloud*'
# Abort kernel removal? No
reboot
Check the active kernel after reboot
uname -a
First, connect to the Jitsi container eb-jitsi
then edit the config files.
lxc-attach -n eb-jitsi
cd /etc/jitsi
ls
First, connect to the JVB container eb-jvb
then edit the config files.
lxc-attach -n eb-jvb
cd /etc/jitsi/videobridge
ls
5.4 I’ve setup the initial JMS node successfully, but getting a 'recording unavailable' error when trying to record.
Setup additional jibri
nodes. Each jibri
server should have at least 4 cores
and 4 GB RAM.
All running Jibri
instances are ephemeral and changes made will disappear
after shutdown. Apply to the eb-jibri-template
container to make a change
permanent and restart the Jibri instances.
Use the related systemd
service.
systemctl stop jibri-ephemeral-container.service
systemctl start jibri-ephemeral-container.service
Jibri
creates a randomly named folder for each recording and puts the MP4 file
in it. The recording folder is /usr/local/eb/recordings
and the MP4 files are
in the subfolders of this folder.
ls -alh /usr/local/eb/recordings/*