LINUX.ORG.RU

Установка и настройка сервера Jitsi Meet в Docker

 , , ,

Установка и настройка сервера Jitsi Meet в Docker

1

1

Jitsi Meet – это open source платформа для видео-звонков. Её легко развернуть на сервере (есть официальная Docker Compose конфигурация); работает в браузере, на десктопе, на Android и на iPhone; относительно нетребовательна к ресурсам.

Требования

  1. Доменное имя.

    В примере используется example.com.

  2. Сервер с Linux.

    В моих тестах для небольших конференций (до 5 человек с включённым видео) было достаточно 1x3.3 ГГц CPU и 2 ГБ RAM (минимальная конфигурация у моего хостинга). Подробней о требованиях: Self-Hosting Deployment Requirements

Установка и настройка

Для примера установки используется сервер с CentOS Stream 10. Для других дистрибутивов ход установки аналогичен (с поправкой на другие пакетные менеджеры).

Установка Docker

Сначала необходимо установить Docker (официальное руководство по установке: Install Docker Engine on CentOS).

Добавляем репозиторий Docker CE и устанавливаем Docker:

# dnf config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# dnf install docker-ce

Запускаем демон Docker:

# systemctl enable --now docker

Установка Jitsi Meet

Далее нужно установить и запустить сервер Jitsi Meet (официальное руководство по установке: Jitsi Self-Hosting Guide).

Установка будет в директорию /opt: /opt/jitsi-docker-jitsi-meet-$ID для файлов Docker Compose и /opt/jitsi-config для рабочих файлов и настроек компонентов Jitsi Meet. Место установки можно поменять на любое другое.

Скачиваем дистрибутив с Docker Compose файлами:

# cd /opt
# wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4) -O jitsi-docker.zip

Извлекаем из него необходимые файлы:

unzip jitsi-docker.zip *docker-compose.yml *gen-passwords.sh

Переходим в рабочую директорию:

cd jitsi-docker-jitsi-meet-*

Создаём в ней .env файл с настройками (доменное имя и email для Let’s Encrypt необходимо заменить на свои):

# General

CONFIG=/opt/jitsi-config
HTTP_PORT=80
HTTPS_PORT=443
TZ=UTC
PUBLIC_URL=https://meet.example.com

# Let's Encrypt configuration

ENABLE_LETSENCRYPT=1
LETSENCRYPT_DOMAIN=meet.example.com
LETSENCRYPT_EMAIL=meet@example.com
LETSENCRYPT_ACME_SERVER="letsencrypt"

# Authentication configuration

ENABLE_AUTH=1
ENABLE_GUESTS=1
AUTH_TYPE=internal

# Security

JICOFO_AUTH_PASSWORD=test
JVB_AUTH_PASSWORD=test
JIGASI_XMPP_PASSWORD=test
JIGASI_TRANSCRIBER_PASSWORD=test
JIBRI_RECORDER_PASSWORD=test
JIBRI_XMPP_PASSWORD=test

# Docker Compose options

RESTART_POLICY=unless-stopped

# Other options

ENABLE_WELCOME_PAGE=0

Далее необходимо обновить файл .env случайными паролями для взаимодействия компонентов Jitsi Meet между собой с помощью скрипта:

# ./gen-passwords.sh

Создаём директории для компонентов Jitsi Meet:

# mkdir -p /opt/jitsi-config/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}

И запускаем сервер:

# docker compose up -d

Первый запуск может занять некоторое время (минуту-две), так как будут создаваться сертификаты Let’s Encrypt (статус можно увидеть в логах).

Логи сервера можно проверить командой:

# docker compose logs web

Создание пользователей

Пользователи хранятся на сервере Prosody. Подробней о работе с пользователями: Jitsi Meet authentification.

Для создания пользователя необходимо зайти в контейнер prosody:

# docker compose exec prosody /bin/bash

И создать пользователя:

prosodyctl --config /config/prosody.cfg.lua register TheDesiredUsername meet.jitsi TheDesiredPassword

Использование

Для создания встречи нужно открыть https://meet.example.com и будет создана комната со случайным названием. Первый вошедший пользователь становится модератором.

Приведённая конфигурация требует аутентификации от модератора при создании комнаты (ENABLE_AUTH=1) и разрешает анонимный вход гостям, если во встрече есть модератор (ENABLE_GUESTS=1). Эти настройки можно изменить – разрешить анонимный вход и создание комнат для всех, или наоборот, запретить вход анонимным гостям.

Дополнительные настройки

При развёртывании Jitsi Meet через Docker Compose можно задавать различные опции через .env файл (полный список доступен в docker-compose.yml).

Некоторые полезные опции:

  • DEFAULT_LANGUAGE=ru - язык интерфейса по умолчанию.
  • TOOLBAR_BUTTONS=camera,chat - набор доступных кнопок в интерфейсе (полный список в файле config.js#L861).


Проверено: hobbit ()
Последнее исправление: hobbit (всего исправлений: 1)

Можно сделать только голос или настройки прав пользователям (типа разрешений на видео, войс), наличие чата? Т.е. подойдет ли как замена тимспика, например, для игр.

sehellion ★★★★★
()
Ответ на: комментарий от sehellion

Можно сделать только голос или настройки прав пользователям (типа разрешений на видео, войс), наличие чата? Т.е. подойдет ли как замена тимспика, например, для игр.

Есть только разница в правах между модератором и обычными пользователями в комнате. И настройка доступных возможностей на уровне сервера целиком.

anlar
() автор топика
Ответ на: комментарий от sehellion

Если ты ему выделишь много cpu и ram - подойдёт.

Он на java написан, память потребляет как не в себя.

kostik87 ★★★★★
()
Ответ на: комментарий от pinachet

а как оно по сравнению с этим https://nextcloud.com/talk/ ?

Jitsi Meet – это только видеоконференции. А Nextcloud Talk – это и чаты, и файлообменник, и интеграция с остальными приложениями Nextcloud.

И Talk как будто сложнее разворачивать и поддерживать (если нужны только видео-звонки): развернуть и настроить весь Nextcloud (Talk это только приложение внутри него), плюс для групповых звонков нужен отдельный модуль HPB.

anlar
() автор топика
Ответ на: комментарий от pinachet

Nextcloud непринуждённо ставится с помощью Ansible плейбука.

Потом по этой статье, настраиваются звонки и, возможно, видеозвонки

https://arnowelzel.de/en/nextcloud-talk-with-coturn-and-self-hosted-signaling-server-high-performance-backend

Ну вот, как бы неплохая подкроватная замена этим вашим «вассапам» для маленькой такой компании.

Twissell
()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.