You are here: Home / Install Jitsi Meet on CentOS 7

Install Jitsi Meet on CentOS 7

by Hawke Robinson last modified Aug 19, 2018 11:01 PM
Notes about getting Jitsi Meet working on CentOS 7.

This example was using CentOS 7.5.1804 (Core)  inside a Godaddy Virtual Private Server (VPS), x86_64.

 

Update OS 

First, make sure overall OS is up to date.

yum update

Reboot as needed.

 

Prereqs to install first

Now, there is a naming problem between the jitsi installer and where speexdsp is located, so unless you install speexdsp separatedly first, you are going to need to run various workarouns as listed in the references section.

 

 

make a git dir, for example mkdir ~/downloads/jitsi/git

 

Install gityum install git

 

 

SpeexDSP Workaround

If speex is currently installed, remove it:

rpm -e --nodeps speex

Grab and install the following RPMs IN THIS ORDER:

wget https://copr-be.cloud.fedoraproject.org/results/fedpop/speex/epel-7-x86_64/00146973-speex/speex-1.2-0.23.rc2.el7.centos.x86_64.rpm

 

rpm -i speex-1.2-0.23.rc2.el7.centos.x86_64.rpm

wget https://copr-be.cloud.fedoraproject.org/results/fedpop/speexdsp/epel-7-x86_64/00146970-speexdsp/speexdsp-1.2-0.7.rc3.el7.centos.x86_64.rpm

 

rpm -i speexdsp-1.2-0.7.rc3.el7.centos.x86_64.rpm

 

i686: 

wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/speex-1.2-0.19.rc1.el7.i686.rpm

wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/speex-devel-1.2-0.19.rc1.el7.i686.rpm

 

x86_64

problems installing this!

wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/speex-1.2-0.19.rc1.el7.x86_64.rpm

wget https://rpmfind.net/linux/centos/7.5.1804/os/x86_64/Packages/speex-devel-1.2-0.19.rc1.el7.x86_64.rpm

rpm -i speex-1.2-0.19.rc1.el7.x86_64.rpm
rpm -i speex-devel-1.2-0.19.rc1.el7.x86_64.rpm

 

May have to shoe-horn in speexdsp manually.

 

 

Potential prereqs to install first:

copy-jdk-configs-3.3-10.el7_5.noarch from updates
giflib-4.1.6-9.el7.x86_64 from base
gtk2-2.24.31-1.el7.x86_64 from base
1:java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64 from updates
1:java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64 from updates
javapackages-tools-3.4.1-11.el7.noarch from base
jitsi-2.10-5550.x86_64 from jitsi
libXScrnSaver-1.2.2-6.1.el7.x86_64 from base
libXfont-1.5.2-1.el7.x86_64 from base
libappindicator-12.10.0-13.el7.x86_64 from base
libdbusmenu-16.04.0-4.el7.x86_64 from base
libdbusmenu-gtk2-16.04.0-4.el7.x86_64 from base
libfontenc-1.1.3-3.el7.x86_64 from base
libindicator-12.10.1-6.el7.x86_64 from base
lksctp-tools-1.0.17-2.el7.x86_64 from base
python-javapackages-3.4.1-11.el7.noarch from base
python-lxml-3.2.1-4.el7.x86_64 from base
ttmkfdir-3.0.9-42.el7.x86_64 from base
tzdata-java-2018e-3.el7.noarch from updates
1:xorg-x11-font-utils-7.5-20.el7.x86_64 from base
xorg-x11-fonts-Type1-7.5-9.el7.noarch from base

 

 

yum install java-1.8.0-openjdk-headless-1.8.0.181-3.b13.el7_5.x86_64

Say yes to installing the dependencies. which includes:

copy-jdk-configs.noarch 0:3.3-10.el7_5

javapackages-tools.noarch 0:3.4.1-11.el7

lksctp-tools.x86_64 0:1.0.17-2.el7

python-javapackages.noarch 0:3.4.1-11.el7

python-lxml.x86_64 0:3.2.1-4.el7

tzdata-java.noarch 0:2018e-3.el7 

 

yum install java-1.8.0-openjdk-1.8.0.181-3.b13.el7_5.x86_64

say yes to install the dependencies which includes:

giflib.x86_64 0:4.1.6-9.el7 libXfont.x86_64 0:1.5.2-1.el7

libfontenc.x86_64 0:1.1.3-3.el7

ttmkfdir.x86_64 0:3.0.9-42.el7

xorg-x11-font-utils.x86_64 1:7.5-20.el7

xorg-x11-fonts-Type1.noarch 0:7.5-9.el7

 

yum install gtk2-2.24.31-1.el7.x86_64

 

Installed:
jitsi.x86_64 0:2.10-5550

Dependency Installed:
libXScrnSaver.x86_64 0:1.2.2-6.1.el7 libappindicator.x86_64 0:12.10.0-13.el7 libdbusmenu.x86_64 0:16.04.0-4.el7
libdbusmenu-gtk2.x86_64 0:16.04.0-4.el7 libindicator.x86_64 0:12.10.1-6.el7

 

Instal Make & Related Tools

yum install gcc-c++ make

 

Install Java

 

yum install java-1.8.0-openjdk

 

yum install java-1.8.0-devel

 

Install NPM

You need npm installed as they explain it on npm site: https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora.

mkdir ~/downloads/jitsi/npm

cd ~/downloads/jitsi/npm

 curl --silent --location https://rpm.nodesource.com/setup_6.x | sudo bash -

May run into a version issue later when trying to install npm when using this:

yum -y install nodejs

 

So may need to uninstall above, and install with fixed version manually:

yum install http-parser

libicudata.so.50()(64bit) is needed by nodejs-1:6.14.3-1.el7.x86_64
    libicui18n.so.50()(64bit) is needed by nodejs-1:6.14.3-1.el7.x86_64
    libicuuc.so.50()(64bit) is needed by nodejs-1:6.14.3-1.el7.x86_64
    libuv >= 1:1.9.1 is needed by nodejs-1:6.14.3-1.el7.x86_64
    libuv.so.1()(64bit) is needed by nodejs-1:6.14.3-1.el7.x86_64

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/n/nodejs-6.14.3-1.el7.x86_64.rpm

rpm -i nodejs-6.14.3-1.el7.x86_64.rpm

 

The following may run into the speex package bug mentioned elsewhere in this doc.

yum install -y npm

So could run this workaround:

yum install -y npm --skip-broken

 

 

Error: Package: 1:npm-3.10.10-1.6.14.3.1.el7.x86_64 (epel)
           Requires: nodejs = 1:6.14.3-1.el7

 

 

Install Prosody

cd ~/downloads/jitsi/git

 

git clone https://github.com/bjc/prosody.git

 

cd prosody

 

 

 

 

 

 

 

 

Install Jitsi

 

cd /opt

git clone https://github.com/jitsi/jitsi-meet.git

mv jitsi-meet meet

cd meet

npm install

 

npm WARN deprecated react-dom@16.3.1: This version of react-dom/server contains a minor vulnerability. Please update react-dom to 16.3.3 or 16.4.2+. Learn more: https://fb.me/cve-2018-6341

 

make

 

 

 

Below may not work properly, may have to to use the above more manual process...

Create a repo file: /etc/yum.repos.d/jitsi.repo with the following content: 

 

[jitsi]
name=Jitsi
baseurl=https://download.jitsi.org/jitsi/rpm/
enabled=1
gpgcheck=0

Or directly use the file https://download.jitsi.org/jitsi/rpm/jitsi.repo

Run yum install jitsi to install the latest jitsi build. 

yum install jitsi

Say Yes to install dependencies. If run into issue withdsp, see the section on this page about the workaround process.

 

 

 

Setup SSL

 

 

https://letsencrypt.org/getting-started/

 

https://certbot.eff.org/

 

Enable EPEL repository

https://fedoraproject.org/wiki/EPEL#How_can_I_use_these_extra_packages.3F

yum install epel-release

 

 

yum -y install yum-utils
yum-config-manager --enable rhui-REGION-rhel-server-extras rhui-REGION-rhel-server-optional
yum install python2-certbot-apache

 

 

 

Certbot's DNS plugins are also available for your system which can be used to automate obtaining a wildcard certificate from Let's Encrypt's ACMEv2 server. To use one of these plugins, you must have configured DNS for the domain you want to obtain a certificate for with a DNS provider that Certbot has a plugin for. A list of these plugins and more information about using them can be found here. To install one of these plugins, run the installation command above but replace python2-certbot-apache with the name of the DNS plugin you want to install.

Before running certbot, make sure you have a working entry in your web server settings, so that the site resolves, for example http://meet.rpgresearch.com should resolve to some kind of page on your web server.

You will want to select this from the list presented durig the certbot install process, by selecting the number that corresponds with the FWDN hostname for the website.

 

certbot --apache

 

You will be prompted for an option to test your ssl, recommended to do so. For example: https://www.ssllabs.com/ssltest/analyze.html?d=meet.rpgresearch.com

 

Automating renewal

Certbot can be configured to renew your certificates automatically before they expire. Since Let's Encrypt certificates last for 90 days, it's highly advisable to take advantage of this feature. You can test automatic renewal for your certificates by running this command:

$ sudo certbot renew --dry-run

If that appears to be working correctly, you can arrange for automatic renewal by adding a cron job or systemd timer which runs the following:

certbot renew

 

 

An example cron job might look like this, which will run at noon and midnight every day:

0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew 

More detailed information and options about renewal can be found in the full documentation.

 

 

 

 

References

https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md

 

https://github.com/jitsi/jitsi/issues/425 

 

https://github.com/jitsi/jitsi-meet/blob/master/doc/manual-install.md

 

https://nodejs.org/en/download/package-manager/#enterprise-linux-and-fedora

 

https://jitsi.org/news/new-tutorial-installing-jitsi-meet-on-your-own-linux-server/

 

https://desktop.jitsi.org/Main/RPMRepository

 

https://jitsi.org/downloads/

 

https://download.jitsi.org/jitsi/rpm/ 

 

Navigation