Skip to main content

Общие задачи (до 15.11.24)

  1. Автономная загрузка докер-образов и репозитория конфигураций
  2. Вывод Jitsi через Nginx Proxy Manager
  3. Настройка Jibri - надёжная запись (без обрывов),  трансляция
  4. Подключение Jitsi Admin
  5. Регистрация и авторизация через Keycloak
  6. Создание интерактивных скриптов установки и удаления Jitsi
  7. Интеграция в Webmin кнопок запуска установки и удаления Jitsi
  8. Тестирование на отсутствие конфликтов (по портам 80 и 443) с PeerTube, BookStack, HumHub, OnlyOffice, Mailcow 

На 5.11.24:

1. Автономная загрузка докер-образов и репозитория конфигураций

Тестировалось на PeerTube, на Jitsi ещё нет.

-----------------------------------------------------------------------------------

2. Вывод Jitsi через Nginx Proxy Manager

На данный момент проблема с подключением к конференции при выводе через Nginx Proxy Manager

Если  заходить через https://домен:8443 то проблем нет. Это как-то связано с веб-сокетами. Правда при включении веб-сокетов в Nginx Proxy Manager всё равно любой участник конференции отключается. 

То же самое, если настраивать обычный Nginx работающий на порту 80 и 443 (без разницы - в контейнере или при установке из репозитория), и проксировать либо на http://домен:8000 либо на https://домен:8443

------------------------------------------------------------------------------------

3. Настройка Jibri - надёжная запись (без обрывов),  трансляция

Контейнер с Jibri запускается, но запись выдаёт ошибку. Кроме того, нет остановки записи (похоже что то со скриптом завершения записи). 

Сейчас значения в файле .env такие:

ENABLE_RECORDING=1
XMPP_RECORDER_DOMAIN=recorder.sogo.nbics.net:8443
JIBRI_RECORDER_USER=recorder
JIBRI_RECORDING_DIR=/config/recordings
JIBRI_FINALIZE_RECORDING_SCRIPT_PATH=/config/finalize.sh
JIBRI_XMPP_USER=jibri
JIBRI_STRIP_DOMAIN_JID=muc
JIBRI_BREWERY_MUC=jibribrewery
JIBRI_PENDING_TIMEOUT=90
JIBRI_LOGS_DIR=/config/logs


При этом нигде не говорится, что в Prosody нужно задавать пользователей jibri и recorder. Тем не менее по совету ИИ создал пользователя jibri на внутреннем домене jitsi.meet (для регистрации обычных пользователей этот домен срабатывает), а вот для recorder нет поддомена recorder.jitsi.meet в контейнере. Или же там нужен свой домен, пока непонятно. 

Кроме того, в логах Jibri есть ошибки при его связи с подсистемой alsa (для звука), хотя на Debian 11 установил всё как положено. Также в логах есть указания на ошибки связи с внутренним контейнерным браузером Chrome. И ещё ошибки  - отстутвие прав доступа к localStorage.

------------------------------------------------------------------------------------

4. Подключение Jitsi Admin

Сама админка Jitsi работает нормально, запускается в Докер-контейнере. Её нужно подключить к Jitsi. Пока этим не занимался - там нужно настроить как я понял доступ через JWT (авторизация по токенам). В настройках файла .env авторизация может быть трёх типов - внутренняя, через LDAP и по токенам. Одно из трёх. Пока не знаю как сделать, чтобы одновременно работала и авторизация по токенам (для Jitsi Admin) и через LDAP (для сквозной авторизации).

------------------------------------------------------------------------------------

5. Регистрация и авторизация через Keycloak

Keycloak нужен для регистрации и авторизации пользователей через веб-интерфейс, при этом учётка может использоваться в разных сервисах, не только в Jitsi. 

Пока тестировал авторизацию путём запуска контейнера с OpenLDAP.

Keycloak пока не запускал. Его нужно будет потом интегрировать с OpenLDAP.

---------------------------------------------------------------------------------------

6. Создание интерактивных скриптов установки и удаления Jitsi

Пока есть скрипт быстрой установки Jitsi, но без интерактива.

---------------------------------------------------------------------------------------

7. Интеграция в Webmin кнопок запуска установки и удаления Jitsi

Пока есть кнопка развёртывания Jitsi, запускающая неинтерактивный скрипт. 

----------------------------------------------------------------------------------------

8. Тестирование на отсутствие конфликтов (по портам 80 и 443) с PeerTube, BookStack, HumHub, OnlyOffice, Mailcow

Тестирование ещё не проводилось

====================================================

На 6.11.24:

2. Вывод Jitsi через Nginx Proxy Manager

Проблема решена.

Во-первых, в файле docker-compose.yml нужно пробросить порт 10000 для Jitsi.
В итоге конфиг должен быть таким:

version: '3.8'
services:
  app:
    image: jc21/nginx-proxy-manager:latest
    restart: unless-stopped
    ports:
      - "80:80"
      - "443:443"
      - "81:81"
      - "10000:10000"
    volumes:
      - ./data:/data

Во-вторых, в файле .env для Jitsi настроить следующие переменные:

HTTP_PORT=8000
PUBLIC_URL=https://my-domain.com   #Тут прописывается домен, что и в NPM, причём без указания порта
JVB_ADVERTISE_IPS=my_public_ip # Эту переменную оказывается нужно использовать даже для белого айпи. 
# Строки для сертификата закомментировать, ну это итак понятно 

В-третьих, использовать для проксирования айпи по протоколу http (https не проверял в данном случае)

-----------------------------------------------------------

3. Настройка Jibri - надёжная запись (без обрывов),  трансляция

После решения проблемы с https (правильная настройка Jitsi и Nginx proxy manager), автоматически заработала и запись через Jibri. Как оказалось, никаких дополнительных пользователей в Prosody создавать не надо.

Главное, чтобы в настройках файла .env для Jitsi значение переменной XMPP_RECORDER_DOMAIN соотвествовало реальному домену плюс поддомен recorder. Например:

XMPP_RECORDER_DOMAIN=recorder.sogo.nbics.net

====================================================