Как установить Jitsi Meet в Debian / Ubuntu

Jitsi Meet - это jаvascript-приложение с открытым исходным кодом (Apache) WebRTC, которое использует Jitsi Videobridge для обеспечения высококачественных, безопасных и масштабируемых видеоконференций. Его можно использовать как замену проприетарным сервисам, таким как Zoom, Whereby, Teams, Skype и многим другим.
Вы можете попробовать его на meet.jit.si . В вики-сайте jitsi-meet доступно больше публичных примеров .
Это руководство должно работать с Debian 8 (Jessie) или более поздней версией и Ubuntu 14.04 или более поздней. Конечно, рекомендуется использовать последнюю доступную (LTS) версию Debian или Ubuntu.
Предпосылки
  • По крайней мере, небольшой виртуальный сервер
  • Базовые знания о Linux

Шаг 1 - Выберите домен и настройте DNS

Прежде всего вам нужно выбрать домен. В этом уроке мы будем использовать talk.example.com. В вашей зоне DNS создайте две простые записи:
talk.example.com. 14400 IN A    10.0.0.1
talk.example.com. 14400 IN AAAA 2001:db8:1234::1

Шаг 2 - Добавить репозиторий и установить

Jitsi поставляет готовые пакеты для jitsi-meet в своем собственном хранилище. Поскольку эти пакеты подписаны своим собственным ключом, нам также нужно добавить GPG из Jitsi в нашу связку ключей.
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 update
В зависимости от того, насколько простой и минимальной является ваша операционная система, вы можете получить сообщение об ошибке из этого хранилища. Вам нужен дополнительный пакет для поддержки репозиториев https. После этого обновите список пакетов еще раз:
apt-get install apt-transport-https
apt-get update

Шаг 3 - Настройте имя хоста (необязательно)

Если этот сервер предназначен только для jitsi-meet, вам следует установить имя хоста с помощью hostnamectl set-hostname talk. Также отредактируйте файл hosts /etc/hostsи замените значение по умолчанию выбранным полным доменным именем в этом руководстве talk.example.com.

Шаг 4 - Установите веб-сервер

Если у вас уже установлен веб-сервер, вы можете пропустить этот шаг. Из соображений производительности мы устанавливаем веб-сервер, в противном случае jitsi-meet будет использовать встроенный веб-сервер Java, называемый Jetty.
apt-get install nginx -y

Шаг 5 - Зарегистрируйте сертификат

Далее мы регистрируем сертификаты Let's Encrypt для шифрования TLS. /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.shПосле установки jitsi-meet будет доступен сценарий, но есть несколько критических проблем, которые еще не устранены (в настоящий момент он не будет работать с этим сценарием). Поэтому мы делаем это вручную.
Мы будем использовать certbot из EFF для сертификатов Let's Encrypt.
wget https://dl.eff.org/certbot-auto
wget -N https://dl.eff.org/certbot-auto.asc

apt-get install gnupg2 -y # needed to receive and validate the certificate

gpg2 --keyserver pool.sks-keyservers.net --recv-key A2CFB51FA275A7286234E7B24D17C995CD9775F2
gpg2 --trusted-key 4D17C995CD9775F2 --verify certbot-auto.asc certbot-auto
Последняя строка должна быть следующей: gpg: Good signature from "Let's Encrypt Client Team <letsencrypt-client@eff.org>" [ultimate]. Если нет, пожалуйста, проверьте еще раз, если вы загрузили правильный ключ. Как НЕ использовать загруженный файл , если подпись недействительна.
Отметьте исполняемый файл certbot и установите его:
chmod a+x ./certbot-auto
mv ./certbot-auto /usr/local/bin/certbot
Время для регистрации вашего сертификата (не забудьте заменить адрес электронной почты и домен своим сертификатом):
certbot certonly --nginx --rsa-key-size 4096 -m holu@example.com -d talk.example.com

Шаг 6 - Установите Jitsi Meet

Наконец, мы можем установить jitsi-meet на наш сервер.
apt-get install jitsi-meet -y
В процессе установки вам нужно ввести выбранное вами доменное имя (не пример talk.example.com!) И выбрать вариант для создания самозаверяющего сертификата.
Мы позволяем установщику сгенерировать сертификат, но не будем его использовать.

Шаг 7 - Изменить поставляемую конфигурацию nginx

Пакет jitsi-meet поставляется с конфигурацией nginx. Он расположен под /etc/nginx/sites-available/talk.example.com.conf.
Что нам нужно изменить? Пожалуйста, обратите внимание, что приведенные ниже шаги являются минимально необходимыми изменениями, вы можете настроить намного больше в этой конфигурации nginx.

Шаг 7.1 SSL-сертификат

Удалите строки, начинающиеся с сертификата ssl и сертификата ssl, и добавьте следующие строки:
ssl_certificate /etc/letsencrypt/live/talk.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/talk.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/talk.example.com/chain.pem;

Шаг 7.2. Поддержка IPv6

Поставленная конфигурация nginx не поддерживает IPv6. Мы можем добавить поддержку IPv6 с помощью следующего:
Сначала добавьте listen [::]:80;ниже listen 80;.
Затем добавьте listen [::]:443 ssl;ниже listen 443 ssl;.

Шаг 7.3 Настройка TLS (необязательно)

Если ваша операционная система является последней и актуальной версией, вам также следует изменить конфигурацию TLS.
Заменить строку, начинающуюся ssl_protocolsс
ssl_protocols TLSv1.2 TLSv1.3;

Шаг 8 - Настройка Jitsi Meet

Файлы конфигурации от jitsi-meet и всех других необходимых пакетов jitsi доступны в разделе /etc/jitsi.
Первым делом настраиваем видеомост. Откройте /etc/jitsi/videobridge/sip-communicator.propertiesи добавьте следующее:
Важно удалить комментарии (# comment) за опциями! В противном случае они не будут работать!
org.jitsi.videobridge.DISABLE_TCP_HARVESTER=true # disable the built-in webserver (required)
org.jitsi.videobridge.TCP_HARVESTER_PORT=4443 # sometimes the above setting does not work, therefore we change the port too (required)
org.jitsi.videobridge.TCP_HARVESTER_MAPPED_PORT=443 # sometimes the above setting does not work, therefore we change the port too (required)
org.jitsi.videobridge.ENABLE_STATISTICS=false # disable statistics to third parties (optional)
Дополнительная дополнительная конфигурация: Открыть /etc/jitsi/meet/talk.exampe.com-config.js:
Раскомментируйте и измените // disableThirdPartyRequests: falseнаtrue
Замените серверы оглушения Google stunServers:на другие, более уважающие конфиденциальность. Есть список, доступный на этой GitHub Gist . Я могу рекомендовать вам использовать следующее:
{ urls: 'stun.nextcloud.com:443' },
{ urls: 'stun.stunprotocol.org:3478' },
{ urls: 'stun.services.mozilla.com:3478' }
Конечно, лучшим решением было бы разместить свой собственный сервер STUN .

Шаг 9 - Перезапустите все службы

Время применить изменения конфигурации:
systemctl restart nginx.service jicofo.service jitsi-videobridge.service

Вывод

Мы установили платформу для проведения видеоконференций с соблюдением конфиденциальности, выполнив несколько простых шагов. Если все прошло хорошо, теперь вы можете посетить домен, который вы настроили, и начать свою первую встречу!
В случае возникновения ошибки при создании комнаты перезагрузите сервер и попробуйте снова.

Добавить комментарий

Автору будет очень приятно узнать обратную связь о своем руководстве.

Комментариев 2

Павел
Павел 28 мая 2020 19:47
Уважаемый админ, нужна помощь в настройке JItsi. Большой проект.
Пишите на почту: ssdbook@bk.ru
Андрей
Андрей 13 июня 2020 18:28
Ещё одна бесполезная инструкция, как установить jitsi. Для кого она? Начиная с "В вашей зоне DNS создайте две простые записи:
talk.example.com. 14400 IN A 10.0.0.1
talk.example.com. 14400 IN AAAA 2001:db8:1234::1"

Простые? Какого вида? У них там тип, значение, название. Ну как догадываться что есть что? Те, кто понимаю, что к чему, не нужна эта инструкция. 
И дальше в том же духе, "установить", "заменить", да где, как?