ServerAdmin.ru
28.9K subscribers
303 photos
35 videos
13 files
2.63K links
Авторская информация о системном администрировании.

Информация о рекламе: @srv_admin_reklama_bot
Автор: @zeroxzed

Второй канал: @srv_admin_live
Сайт: serveradmin.ru
Download Telegram
​​Одной из наиболее известных, если не самой известной, бесплатной платформой с открытым исходным кодом для организации онлайн конференций является BigBlueButton. Условно её можно назвать бесплатной заменой Zoom, которую можно поднять на своих серверах.

📌 Базовый функционал BigBlueButton:

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

В общем случае BigBlueButton ориентируется на сферу обучения. То есть это в первую очередь инструмент учебных заведений для проведения онлайн лекций. В этой роли лично я и видел отзывы о продукте, в том числе от знакомых, которые работают в учебных заведениях.

Продукт не сказать, что простой для установки и освоения. Очень много нюансов в плане потребления ресурсов, полосы пропускания, качества картинки, производительности и т.д. И дело тут не только в самой программе, сколько в тематике онлайн конференций. Это в целом технологичная и непростая отрасль.

С установкой и запуском базовой конфигурации особых проблем не будет. Продукт известный, в сети много руководств. Есть готовый bash скрипт для Ubuntu, который надо запустить, передав ему некоторые базовые параметры в виде домена и почтового ящика для учётной записи Let's Encrypt. Процесс подробно описан в документации. Установка будет выполнена с помощью deb пакетов из подключенного репозитория и кое-что будет запущено в Docker (greenlight — веб панель для управления).

Альтернативным вариантом установки может стать Ansible, с использованием которого написаны различные варианты разворачивания полной инфраструктуры. Например, вариант HA кластера, с PeerTube для стриминга, ELK для логов, Prometheus + Grafana для мониторинга — Ansible roles deploying BigBlueButton.

Сайт / Исходники / Документация / Demo

#видеоконференции
​​С момента начала пандемии резко возросла потребность в сервисах для аудио и видео встреч. И с тех пор этот сфера программных продуктов активно развивается. Среди open source проектов один из самых популярных - Jitsi. Он может работать как самостоятельный продукт, так и интегрироваться в состав других. К примеру, Rocket.Chat использует его в качестве внутренних видеозвонков, а так же чат сервер Matrix-Synapse.

Попробовать Jitsi можно как в публичном сервисе, так и развернув его у себя. Покажу, как это сделать на Debian 12. Проверил на этой версии, но инструкция будет актуальна для любого deb дистрибутива, так как используется общий репозиторий разработчиков.

Перед установкой я подготовил VPS с внешним IP адресом, создал для него DNS запись и прописал её в качестве hostname, чтобы можно было сразу получить бесплатный сертификат от Let's Encrypt.

Устанавливаем необходимые зависимости:
# apt install apt-transport-https gnupg

Подключаем репозиторий и импортируем его ключ:
# echo 'deb https://download.jitsi.org stable/' \
| tee /etc/apt/sources.list.d/jitsi-stable.list
# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key \
| apt-key add -

Устанавливаем сервер Jitsi. Он, кстати, работает на Java:
# apt update
# apt install jitsi-meet

В процессе установки вас попросят ввести полное FQDN имя сервера. А затем спросят, хотите ли вы получить сертификаты от Let's Encrypt. Если у вас с DNS всё в порядке, то заказывайте сертификаты, если нет, то выберите вариант с self signed.

Далее вся установка и настройка выполнятся автоматически. Проверить статус службы можно вот так:
# systemctl status jitsi-videobridge2

Если всё в порядке, заходите по FQDN имени браузером, увидите свой сервер Jitsi с возможностью создать комнату для конференции. Если вас будет выкидывать из комнаты при подключении второго человека, то перезапустите службу:
# systemctl restart jitsi-videobridge2

Это, похоже, какой-то старый баг, описание, как и решение, которого я увидел в одном из issue в репозитории.

После установки сервер доступен для всех без аутентификации, как при создании конференции, так и подключении. Подозреваю, что вы не собираетесь делать его публичным, так что сразу настройте одну из аутентификаций. Описание есть в документации.

Можно настроить аутентификацию на создание конференций, а подключения к уже существующим комнатам позволить в том числе анонимным пользователям, если их подтвердит модератор, либо они будут знать пароль от комнаты. Jitsi поддерживает как внутреннюю аутентификацию (смотри настройку Prosody), так и внешнюю через LDAP.

По умолчанию Jitsi работает через Nginx, так что конфигурацию веб сервера или http логи смотреть надо в нём. А логи самого сервера живут в /var/log/jitsi/jvb.log.

Сайт / Исходники

💡Аналогом Jitsi можно считать тоже бесплатный open source проект BigBlueButton, про который я уже писал. Также можно воспользоваться бесплатной версией TrueConf Server Free с ограничением в 10 абонентов (считаются пользователи онлайн).

#видеоконференции
​​С появлением open source технологии WebRTC связано создание огромного количества продуктов для онлайн разговоров и конференций через браузер. Практически все бесплатные продукты и множество платных построены на его базе. Среди них известный Яндекс.Телемост, Сферум от mail ru, self-hosted сервисы BigBlueButton и Jitsi, и многие другие.

Очень простым сервисом на основе WebRTC, который можно развернуть у себя буквально в несколько действий, является MiroTalk P2P. Его можно вообще не настраивать. По умолчанию всё заработает. Как он работает, можно посмотреть на публичном сервисе:

https://p2p.mirotalk.com

Локально он будет выглядеть один в один.

🟢 Основные возможности:

Полный open source, никаких ограничений.
Аутентификация пользователей, защита конференций паролем.
Оптимизация под смартфоны.
Шаринг экрана, приложения, вкладки браузера, в том числе прямой видео поток.
Качество до 4K и 60 FPS.
Запись конференций.
Поддержка REST API.

На самом деле очень удобно и просто сделано. Я погонял и разговоры, и шаринг экрана, и работу на смартфонах. Тема с QR кодами для смартфонов удобна. Всё везде сразу заработало. Ничего качать, устанавливать, настраивать не надо. Кинул ссылку клиенту, он подключился бразуером.

Чтобы Mirotalk запустить у себя, достаточно воспользоваться инструкцией. Не буду её тут приводить. Я немного с ним поразбирался, поэтому запускал и в Docker, и напрямую через npm (Nodejs). MiroTalk написан на JavaScript.

В инструкции в том числе показано, как запустить сервис за прокси с помощью Nginx или Apache. Если будете так делать, то перепроверьте конфиги из руководства. Они неаккуратно сделаны с некоторыми очень неоптимальными настройками. Например, для редиректа с HTTP на HTTPS в Nginx используется if. Так делать не надо. А вот так надо.

Для тех, кто будет реально устанавливать и пробовать, дам подсказку. Современные браузеры запрещают доступ к микрофону и камере сайтам без HTTPS. MiroTalk можно запустить без шифрования, выбрав в .env настройку HTTPS=false. Всё запустится без каких-либо ошибок. Но в браузере не будет выскакивать запрос на доступ к микрофону. Сервис, соответственно, работать не будет. Я долго возился с сервером, пока не понял, в чём дело и почему не работает. Достаточно включить HTTPS=true и всё заведётся на самоподписанном сертификате. С ним браузеры будут работать.

Я тестировал в локалке, соответственно STUN и TURN просто отключил. По умолчанию используются бесплатный сервер STUN от google и какой-то канадский TURN metered_ca, завязанный на учётку автора программы. Если хотите полностью независимый сервер с p2p между интернет клиентами, то можете поднять свои STUN и TURN серверы с помощью Coturn. Там настройка очень простая.

На картинке снизу я смартфон направил в окно, а у себя расшарил вкладку браузера.

Сайт / Исходники

#видеоконференции