Свои видеовстречи
Видеоконференции в вашей инфраструктуре
«Свои видеовстречи» — готовый сервис Jitsi Meet на вашей ВМ и вашем домене. При первом запуске образ сам получает сертификат Let’s Encrypt, включает HTTPS, TURN-сервер, лобби для гостей и веб-панель управления пользователями на базе LLDAP — лёгкого каталога учётных записей. Сервис готов к работе через несколько минут после запуска ВМ.
Создавать встречи могут только модераторы с учётной записью (режим secure domain), гости подключаются по ссылке без регистрации. Модератор решает, кого впустить: до его входа комната закрыта, а лобби позволяет допускать гостей по одному. Встроенный TURN (coturn) помогает подключаться из сетей, где ограничен UDP.
Основные компоненты работают на вашей ВМ: учётные записи, конфигурация и медиатрафик групповых встреч обрабатываются на ней. Дополнительный облачный сервис видеоконференций не нужен.
Возможности для участников
- видеовстречи в браузере без установки программ и плагинов;
- официальные приложения Jitsi Meet для Android и iOS (адрес вашего сервера указывается в настройках приложения);
- чат, демонстрация экрана, поднятие руки и реакции;
- адаптивное качество аудио и видео, размытие фона;
- локальная запись встречи: видео и звук сохраняются в файл WebM на компьютере участника, остальные участники получают уведомление; работает в десктопных браузерах на Chromium (Chrome, Edge).
Доступность отдельных клиентских функций зависит от браузера, ОС и версии мобильного приложения.
Управление и безопасность
- режим secure domain: создать комнату может только вошедший модератор, гость не поднимет комнату на вашем сервере;
- лобби и управление участниками: лобби включается автоматически для каждой комнаты, модератор допускает гостей по одному;
- веб-панель управления пользователями и правами модераторов с ограничением частоты попыток входа по IP-адресу;
- HTTPS с автоматическим выпуском и продлением сертификата Let’s Encrypt;
- автосоздание A-записи, если DNS-зона размещена в Yandex Cloud и к ВМ прикреплён сервисный аккаунт с ролью
dns.editor; - встроенный coturn: TURN по UDP/TCP 3478 и TURN-over-TLS по TCP 443 для сетей с закрытым UDP.
Чего в образе нет
- серверной записи встреч и трансляций (Jibri): запись только локальная, в браузере участника;
- телефонного подключения к встречам (Jigasi, SIP/dial-in);
- интеграции с календарями;
- кластера из нескольких видеомостов: все компоненты работают на одной ВМ.
Кому подходит
- командам и небольшим компаниям, которым нужен собственный сервис видеовстреч на своём домене вместо публичных сервисов;
- организациям, которым важно самим контролировать инфраструктуру, конфигурацию и учётные записи;
- образовательным проектам, консультациям и внутренним встречам, где вход гостей контролирует аутентифицированный модератор.
Самостоятельное размещение даёт контроль над инфраструктурой и данными, но само по себе не подтверждает соответствие 152-ФЗ или иным требованиям: организационные меры, права доступа и обработка данных остаются в зоне ответственности владельца информационной системы.
Компоненты и лицензии
| Компонент | Версия | Лицензия |
|---|---|---|
| Ubuntu | 24.04 LTS | GPL, LGPL, BSD, MIT и другие свободные лицензии |
| Jitsi Meet (web, Jicofo, Videobridge) | stable-11031 |
Apache 2.0 |
| Prosody | В составе jitsi/prosody:stable-11031 |
MIT |
| LLDAP | v0.6.3 |
GPL-3.0 |
| coturn | 4.6.1-1build4 |
BSD |
Исходящий трафик и стоимость
Итоговая стоимость складывается из цены продукта в карточке Marketplace и ресурсов Yandex Cloud: ВМ, диска, публичного IP и исходящего трафика.
В групповой встрече видеомост (Jitsi Videobridge) отправляет каждому участнику несколько видеопотоков, поэтому при активных встречах исходящий трафик может стоить дороже самой ВМ. Во встрече двух участников при доступном прямом P2P-соединении медиатрафик обычно идёт напрямую и исходящий трафик ВМ почти не расходует.
| Сценарий | Исходящий поток ВМ | Объём за час |
|---|---|---|
| 10 участников, 2–4 камеры 720p | 15–30 Мбит/с | 7–14 ГБ |
| 25 участников, 6–10 камер 720p | 40–75 Мбит/с | 18–34 ГБ |
| 25 участников, все с камерами 720p, много видимых плиток | 100–250 Мбит/с | 45–113 ГБ |
Актуальную цену за гигабайт и бесплатный месячный объём смотрите в правилах тарификации Yandex Cloud.
Как уменьшить трафик. Исходящий видеотрафик можно уменьшить с помощью двух параметров в config.js: channelLastN — сколько видеопотоков одновременно получает каждый участник, и потолок разрешения в constraints. Для большинства рабочих встреч достаточно 5–6 видеопотоков и 720p. По умолчанию channelLastN равен -1, то есть количество получаемых видеопотоков не ограничено. Файл /opt/jitsi-meet-cfg/web/config.js создаётся автоматически при запуске контейнера. Для постоянных настроек создайте файл /opt/jitsi-meet-cfg/web/custom-config.js.
Настройка занимает обычно 5–10 минут после запуска ВМ. Заранее нужны домен, статический публичный IP и группа безопасности.
Шаг 1. Домен и статический IP
- Выберите полное доменное имя сервиса, например
meet.example.com. - Зарезервируйте статический публичный IPv4 в зоне доступности будущей ВМ.
- Если DNS обслуживает сторонний провайдер, создайте A-запись домена на зарезервированный IP.
- Если публичная DNS-зона размещена в Yandex Cloud, создайте сервисный аккаунт с ролью
dns.editor: вы прикрепите его к ВМ на шаге 3. Образ сам создаст отсутствующую A-запись; существующую запись он не изменяет.
Шаг 2. Сеть и группа безопасности
Создайте группу безопасности или дополните существующую входящими правилами:
| Протокол | Порт | Назначение |
|---|---|---|
| TCP | 80 |
перенаправление на HTTPS и выпуск сертификата Let’s Encrypt |
| TCP | 443 |
веб-интерфейс Jitsi Meet и TURN-over-TLS |
| TCP | 9443 |
панель управления пользователями (LLDAP) |
| TCP и UDP | 3478 |
STUN/TURN |
| UDP | 10000 |
аудио- и видеотрафик Jitsi Videobridge |
| UDP | 49152-49251 |
relay-порты coturn |
| TCP | 22 |
SSH-доступ к ВМ |
Для портов 22 и 9443 укажите в качестве источника только адреса администраторов, а не 0.0.0.0/0: SSH и панель пользователей не нужны участникам встреч. Разрешите ВМ исходящие подключения в интернет: они нужны для выпуска сертификата Let’s Encrypt, медиатрафика и аварийной повторной загрузки контейнеров.
При штатном первом запуске контейнеры загружаются из локального архива. Если архив повреждён или отсутствует, образ загружает контейнеры Jitsi и LLDAP из официальных репозиториев. Локальный фаервол образ не настраивает. Если вы включите его самостоятельно, откройте в нём те же порты, что и в группе безопасности.
Шаг 3. Создание ВМ и метаданные
- В Marketplace выберите продукт «Свои видеовстречи» и создайте ВМ в той зоне доступности, где зарезервирован IP.
- Назначьте статический IP и группу безопасности из шагов 1 и 2.
- В блоке Доступ укажите логин администратора ВМ и публичный SSH-ключ.
- Если DNS-зона размещена в Yandex Cloud, в блоке Дополнительно прикрепите сервисный аккаунт с ролью
dns.editor. Для внешнего DNS сервисный аккаунт не нужен. - В разделе Метаданные добавьте четыре обязательных параметра первого запуска:
| Ключ | Значение |
|---|---|
jitsi_hostname |
Полное имя сервиса, например meet.example.com |
jitsi_letsencrypt_email |
Действующий email администратора для регистрации в Let’s Encrypt |
jitsi_admin_user |
Логин первого администратора и модератора: 3–64 символа, строчные латинские буквы, цифры, ., _, - |
jitsi_admin_password |
Пароль первого администратора, 12–128 символов |
Пароль остаётся в метаданных ВМ: его видят все, у кого есть доступ к ВМ в консоли, и процессы внутри ВМ. После настройки его нужно сменить (шаг 5).
Шаг 4. Первый запуск
После старта ВМ образ проверяет, что A-запись указывает на публичный IP ВМ, и только затем запрашивает сертификат Let’s Encrypt. Пока настройка не завершена, https://meet.example.com не открывается — это нормально.
Когда настройка завершится, откройте https://meet.example.com. Если сервис не появился через 10–15 минут, посмотрите статус и журнал:
sudo systemctl status first-boot.service --no-pager
sudo journalctl -u first-boot.service -f
Типичная причина — A-запись ещё не указывает на IP ВМ или не открыт порт 80. После исправления убедитесь, что запись обновилась (dig +short meet.example.com), и повторите настройку:
sudo systemctl restart first-boot.service
Шаг 5. Смена пароля и первый вход
Откройте панель пользователей https://meet.example.com:9443/, войдите с jitsi_admin_user и jitsi_admin_password и сразу смените пароль администратора. Первый администратор уже состоит в группах lldap_admin (управление каталогом) и jitsi_moderators (право создавать встречи).
Управление пользователями и вход в конференцию
Чтобы добавить модератора:
- В панели откройте Users и нажмите Create a user.
- Заполните User name, Email, Password и Confirm password и сохраните пользователя. User name будет логином в Jitsi; email для входа не используется. Пароль в LLDAP формально необязателен, но без него пользователь не сможет войти в Jitsi.
- Откройте Groups, выберите группу
jitsi_moderators, внизу страницы выберите пользователя и нажмите Add to group. - Передайте пользователю адрес сервиса, его User name и пароль.
Модератор открывает адрес комнаты, выбирает вход организатора и вводит User name и пароль. Пользователь вне группы jitsi_moderators войти как модератор не сможет. Гости открывают ссылку на комнату без учётной записи.
Чтобы отозвать право создавать встречи, удалите пользователя из группы jitsi_moderators. Не удаляйте системного пользователя jitsi-bind и не меняйте его группы. Не удаляйте последнего администратора из группы lldap_admin, иначе управление каталогом станет недоступно.
«Свои видеовстречи» уже помогают:
- малому и среднему бизнесу — проводить встречи на собственном домене без зависимости от публичных сервисов;
- проектным командам — организовывать рабочие встречи, демонстрации и консультации в своей инфраструктуре;
- образовательным организациям — проводить защищённые занятия с авторизацией модераторов и допуском гостей;
- сотрудникам и клиентам — подключаться к видеовстречам из браузера или мобильного приложения.
По вопросам работы образа пишите на support_meet@kodep.ru. Настройка стороннего DNS, доменов и сетевого окружения остаётся на стороне клиента.
| ПО | Версия |
|---|---|
| Ubuntu | 24.04 LTS |
| Ubuntu | 24.04 LTS |
| Docker Engine | 29.7.2 |
| Jitsi Meet (Web, Prosody, Jicofo, Videobridge) | stable-11031 |
| LLDAP | 0.6.3 |
| HAProxy | 2.8.16 |
| coturn | 4.6.1 |