Install Jitsi Meet 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://download.jitsi.org/jitsi/rpm/