Быстрый старт

Чтобы быстро запустить Jitsi Meet на машине с Docker и Docker Compose, выполните следующие действия:

  1. Загрузите и извлеките последний выпуск . НЕ клонировать репозиторий git. Если вы заинтересованы в запуске тестовых изображений, смотрите ниже:
    wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
  2. Разархивируйте пакет:
    unzip <filename>
  3. Создайте .env файл, скопировав и изменив env.example:
    cp env.example .env
  4. Установите надежные пароли в настройках раздела безопасности .env файл, запустив следующий bash-скрипт
    ./gen-passwords.sh
  5. Создать необходимые CONFIG каталоги
    • Для Linux:
    mkdir -p ~/.jitsi-meet-cfg/{web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}
    • Для Windows:
    echo web,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri
    mkdir "~/.jitsi-meet-cfg/$_"
  6. Бегать docker compose up -d
  7. Получите доступ к веб-интерфейсу по адресу https://localhost:8443 (или другой порт, если вы редактировали .env файл).

ВАЖНЫЙ : При развертывании Jitsi Meet для реального использования необходимо установить PUBLIC_URL env в реальный домен, в котором работает ваша установка.

Если вы тоже хотите использовать jigasi, сначала настройте свой env-файл с учетными данными SIP, а затем запустите Docker Compose следующим образом:

docker compose -f docker-compose.yml -f jigasi.yml up

Если вы хотите включить обмен документами через Этерпад , настройте его и запустите Docker Compose следующим образом:

docker compose -f docker-compose.yml -f etherpad.yml up

Если вы хотите включить виртуальную доску для совместной работы через Экскалидро , настройте его и запустите Docker Compose следующим образом:

docker compose -f docker-compose.yml -f whiteboard.yml up

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

docker compose -f docker-compose.yml -f jibri.yml up -d

или также использовать джигаси:

docker compose -f docker-compose.yml -f jigasi.yml -f jibri.yml up -d

Чтобы включить компонент транскрибатора, запустите Docker Compose следующим образом:

docker compose -f docker-compose.yml -f transcriber.yml up -d

Или для них всех вместе:

docker compose -f docker-compose.yml -f transcriber.yml -f jigasi.yml -f jibri.yml up -d

Для проекта анализа журналов вам понадобятся файлы log-analyser.yml и grafana.yml. Этот проект позволяет анализировать логи докера в графане. Если вы хотите запустить анализатор журналов, запустите файлы Docker следующим образом:

docker-compose -f docker-compose.yml -f log-analyser.yml -f grafana.yml up -d

Следовать этот документ для получения подробной информации об анализе журналов.

Обновление

Если вы хотите обновить, просто запустите

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

еще раз (точно так же, как вы изначально загрузили Jitsi). Затем разархивируйте и перезапишите все, когда вас спросят:

unzip <filename>

Тестирование разработки/нестабильных сборок

Загрузите последнюю версию кода:

git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet

Бегать docker compose up по-прежнему.

Каждый день загружается новая «нестабильная» сборка образа.

Создание собственных изображений

Загрузите последнюю версию кода:

git clone https://github.com/jitsi/docker-jitsi-meet && cd docker-jitsi-meet

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

Чтобы построить все изображения:

make

Чтобы создать конкретное изображение (например, веб-изображение):

make build_web

Как только ваша локальная сборка будет готова, обязательно добавьте JITSI_IMAGE_VERSION=latest к твоему .env файл.

Примечание по безопасности

Раньше в этой настройке использовались пароли по умолчанию для внутренних учетных записей, используемых во всех компонентах. Чтобы обеспечить безопасность настройки по умолчанию, они были удалены, и соответствующие контейнеры не запустятся без установки пароля.

Надежные пароли могут быть созданы следующим образом: ./gen-passwords.sh Это изменит ваш .env файл (резервная копия сохраняется в .env.bak) и установите надежные пароли для каждой из необходимых опций. Пароли генерируются с помощью openssl rand -hex 16.

НЕ используйте повторно какие-либо пароли.

Архитектура

Установку Jitsi Meet можно разбить на следующие компоненты:

  • Веб-интерфейс
  • XMPP-сервер
  • Компонент фокуса конференции
  • Видеомаршрутизатор (может быть несколько)
  • SIP-шлюз для аудиозвонков
  • Инфраструктура вещания для записи или потоковой передачи конференции.

На схеме показано типичное развертывание на хосте, на котором работает Docker. В этом проекте каждый из вышеперечисленных компонентов разделен на взаимосвязанные контейнеры. Для этого предусмотрено несколько образов контейнеров.

Внешние порты

На брандмауэре должны быть открыты следующие внешние порты:

  • 80/tcp для HTTP веб-интерфейса (на самом деле просто для перенаправления после раскомментирования ENABLE_HTTP_REDIRECT=1 в .env)
  • 443/tcp для веб-интерфейса HTTPS
  • 10000/udp для RTP-медиа через UDP

Также 20000-20050/udp для jigasi, если вы решите развернуть его для облегчения доступа по SIP.

Например, на сервере CentOS/Fedora это будет сделано так (без доступа по SIP):

sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --permanent --add-port=10000/udp
sudo firewall-cmd --reload

Видеть соответствующий раздел в руководстве по установке Debian/Ubuntu .

Изображения

  • база : стабильный базовый образ Debian с Наложение S6 для управления технологическими процессами и Репозитории Jitsi включено. Все остальные изображения основаны на этом.
  • база-Java : То же, что и выше, плюс Java (OpenJDK).
  • сеть : веб-интерфейс Jitsi Meet, обслуживаемый nginx.
  • просодия : просодия , сервер XMPP.
  • джикофо : Хикофо , компонент фокуса XMPP.
  • jvb : Джитси Видеобридж , видеомаршрутизатор.
  • Джигаси : Джигация , шлюз SIP (только аудио).
  • Джибри : Джибри , инфраструктура вещания.

Рекомендации по проектированию

Jitsi Meet использует XMPP для сигнализации, поэтому необходим сервер XMPP. Настройка, предоставляемая этими контейнерами, не предоставляет доступ к XMPP-серверу внешнему миру. Вместо этого он остается полностью изолированным, и маршрутизация трафика XMPP происходит только в определяемой пользователем сети.

Сервер XMPP может быть доступен внешнему миру, но это выходит за рамки данного проекта.

Конфигурация

Конфигурация выполняется через переменные среды, содержащиеся в файле .env файл. Вы можете скопировать предоставленный env.example файл в качестве ссылки.

ПеременнаяОписаниеПример
CONFIGКаталог, в котором будет храниться вся конфигурация/opt/jitsi-meet-cfg
TZСистемный часовой поясЕвропа/Амстердам
HTTP_PORTОткрытый порт для HTTP-трафика8000
HTTPS_PORTОткрытый порт для HTTPS-трафика8443
JVB_ADVERTISE_IPSIP-адреса хоста Docker (через запятую), необходимые для сред локальной сети.192.168.1.1
PUBLIC_URLПубличный URL-адрес веб-службыhttps://meet.example.com

Конфигурация TLS

Давайте зашифруем конфигурацию

Если вы хотите напрямую предоставить свой экземпляр Jitsi Meet внешнему трафику, но у вас нет надлежащего сертификата TLS, вам повезло, поскольку поддержка Let’s Encrypt встроена в систему. Вот необходимые параметры:

ПеременнаяОписаниеПример
ENABLE_LETSENCRYPTВключить генерацию сертификата Let’s Encrypt1
LETSENCRYPT_DOMAINДомен, для которого создается сертификатmeet.example.com
LETSENCRYPT_EMAILE-Mail для получения важных уведомлений об аккаунте (обязательно)alice@atlanta.net

Кроме того, вам необходимо будет установить HTTP_PORT до 80 и HTTPS_PORT на 443 и PUBLIC_URL на ваш домен. Вы также можете рассмотреть возможность перенаправления HTTP-трафика на HTTPS, установив ENABLE_HTTP_REDIRECT=1.

Предупреждение об ограничении скорости Let’s Encrypt : Let’s Encrypt имеет ограничение на количество раз, которое вы можете отправить запрос на новый сертификат для вашего доменного имени. На момент написания текущий лимит составляет пять новых (дубликатов) сертификатов для одного и того же доменного имени каждые семь дней. По этой причине рекомендуется отключить переменные среды Let’s Encrypt из .env если вы планируете удалить .jitsi-meet-cfg папка. В противном случае вы можете рассмотреть возможность перемещения .jitsi-meet-cfg папку в другое место, чтобы у вас было безопасное место для поиска уже выпущенного Let’s Encrypt сертификата. Или проведите первоначальное тестирование с отключенным Let’s Encrypt, а затем снова включите Let’s Encrypt после завершения тестирования.

Для получения дополнительной информации об ограничениях скорости Let’s Encrypt посетите: https://letsencrypt.org/docs/rate-limits/

Использование существующего сертификата и ключа TLS

Если у вас есть соответствующий сертификат TLS и вам не нужен сертификат Let’s Encrypt, вы можете настроить контейнер Jitsi Meet для его использования.

В отличие от сертификатов Let’s Encrypt, это не настраивается через .env файл, но сообщив Jitsi Meet’s web сервис для монтирования следующих двух томов:

  • устанавливать /path/to/your/cert.key файл в /config/keys/cert.key точка монтирования
  • устанавливать /path/to/your/cert.fullchain файл в /config/keys/cert.crt точка монтирования.

Делаю это в docker-compose.yml файл должен выглядеть так:

services:
    web:
        ...
        volumes:
            ...
            - /path/to/your/cert.fullchain:/config/keys/cert.crt
            - /path/to/your/cert.key:/config/keys/cert.key

Конфигурация функций (config.js)

ПеременнаяОписаниеПример
TOOLBAR_BUTTONSНастройте кнопки панели инструментов. Добавьте названия кнопок через запятую (без пробелов между запятыми)
HIDE_PREMEETING_BUTTONSСкройте кнопки на экране предварительного присоединения. Добавьте название кнопки через запятую.
ENABLE_LOBBYКонтролируйте, должна ли функция лобби быть включена или нет.1
ENABLE_AV_MODERATIONКонтролируйте, должна ли модерация A/V быть включена или нет.1
ENABLE_PREJOIN_PAGEПоказывать страницу предварительного присоединения перед входом в конференцию1
ENABLE_WELCOME_PAGEВключить страницу приветствия1
ENABLE_CLOSE_PAGEВключить закрытие страницы0
DISABLE_AUDIO_LEVELSОтключить измерение уровней звука0
ENABLE_NOISY_MIC_DETECTIONВключить обнаружение шумного микрофона1
ENABLE_BREAKOUT_ROOMSВключить подгруппы1

Конфигурация SIP-шлюза Jigasi (только аудио)

Если вы хотите включить SIP-шлюз, необходимы следующие параметры:

ПеременнаяОписаниеПример
JIGASI_SIP_URISIP URI для входящих/исходящих звонковtest@sip2sip.info
JIGASI_SIP_PASSWORDПароль для указанной учетной записи SIP<unset>
JIGASI_SIP_SERVERSIP-сервер (если сомневаетесь, используйте домен учетной записи SIP)sip2sip.info
JIGASI_SIP_PORTпорт SIP-сервера5060
JIGASI_SIP_TRANSPORTSIP-транспортUDP

Отображение информации о дозвоне

ПеременнаяОписаниеПример
DIALIN_NUMBERS_URLURL-адрес JSON со всеми номерами дозвонаhttps://meet.example.com/dialin.json
CONFCODE_URLURL-адрес API для проверки/генерации кодов дозвонаhttps://jitsi-api.jitsi.net/conferenceMapper

JSON с номерами дозвона должен выглядеть следующим образом:

{"message":"Dial-In numbers:","numbers":{"DE": ["+49-721-0000-0000"]},"numbersEnabled":true}

Настройка записи/прямой трансляции с помощью Jibri

Если вы хотите включить Jibri, необходимы следующие параметры:

ПеременнаяОписаниеПример
ENABLE_RECORDINGВключить запись/прямую трансляцию1

Расширенная конфигурация Jibri:

ПеременнаяОписаниеПример
JIBRI_RECORDER_USERПользователь внутреннего регистратора для клиентских подключений Jibriдиктофон
JIBRI_RECORDER_PASSWORDПароль внутреннего рекордера для клиентских подключений Jibri<unset>
JIBRI_RECORDING_DIRКаталог записей внутри контейнера Jibri/конфигурация/записи
JIBRI_FINALIZE_RECORDING_SCRIPT_PATHФинальный сценарий. Запустится после завершения записи/config/finalize.sh
JIBRI_XMPP_USERВнутренний пользователь для подключений клиентов Jibri.Джибри
JIBRI_STRIP_DOMAIN_JIDПрефиксный домен для полосы внутри Jibri (подробности см. в env.example)слизь
JIBRI_BREWERY_MUCНазвание MUC для пула Jibriпивоварня
JIBRI_PENDING_TIMEOUTТайм-аут соединения MUC90

Конфигурация Jitsi Meet

Jitsi-Meet использует два файла конфигурации для изменения настроек по умолчанию в веб-интерфейсе: config.js и interface_config.js. Файлы расположены внутри CONFIG/web/ каталог, настроенный в вашем файле среды.

Эти файлы создаются заново при каждом перезапуске контейнера. Если вы хотите предоставить свои собственные настройки, создайте свои собственные файлы конфигурации: custom-config.js и custom-interface_config.js.

Достаточно указать только соответствующие настройки, скрипты докера дополнят ваши пользовательские файлы к файлам по умолчанию!

Аутентификация

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

Если аутентификация включена, после входа в систему аутентифицированного пользователя он всегда входит в систему до истечения времени ожидания сеанса. Вы можете установить ENABLE_AUTO_LOGIN=0 чтобы отключить эту функцию автоматического входа в систему по умолчанию, или вы можете установить JICOFO_AUTH_LIFETIME чтобы ограничить время жизни сеанса.

ПеременнаяОписаниеПример
ENABLE_AUTHВключить аутентификацию1
ENABLE_GUESTSВключить гостевой доступ1
AUTH_TYPEВыберите тип аутентификации (внутренняя, jwt или ldap)внутренний
ENABLE_AUTO_LOGINВключить автоматический вход1
JICOFO_AUTH_LIFETIMEВыберите значение тайм-аута сеанса для аутентифицированного пользователя.3 часа

Внутренняя аутентификация

Режим аутентификации по умолчанию ( internal) использует учетные данные XMPP для аутентификации пользователей. Чтобы включить его, вам необходимо включить аутентификацию с помощью ENABLE_AUTH и установить AUTH_TYPE к internal, затем настройте параметры, которые вы можете увидеть ниже.

Внутренних пользователей необходимо создавать с помощью prosodyctl полезность в prosody контейнер. Для этого сначала запустите оболочку в соответствующем контейнере:

docker compose exec prosody /bin/bash

Попав в контейнер, выполните следующую команду, чтобы создать пользователя:

Обратите внимание, что команда не выдает никаких результатов.

Чтобы удалить пользователя, выполните в контейнере следующую команду:

Чтобы вывести список всех пользователей, выполните в контейнере следующую команду:

find /config/data/meet%2ejitsi/accounts -type f -exec basename {} .dat \;

Аутентификация с использованием LDAP

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

ПеременнаяОписаниеПример
LDAP_URLURL-адрес для соединения ldapldaps://ldap.domain.com/
LDAP_BASEБазовый DN LDAP. Может быть пустым.DC=пример,DC=домен,DC=com
LDAP_BINDDNDN пользователя LDAP. Не указывайте этот параметр для анонимной привязки.CN=binduser,OU=пользователи,DC=пример,DC=домен,DC=com
LDAP_BINDPWПароль пользователя LDAP. Не указывайте этот параметр для анонимной привязки.Лдапусерпароль0рд
LDAP_FILTERLDAP-фильтр.(sAMAccountName=%u)
LDAP_AUTH_METHODМетод аутентификации LDAP.связывать
LDAP_VERSIONВерсия протокола LDAP3
LDAP_USE_TLSВключить LDAP TLS1
LDAP_TLS_CIPHERSУстановите список шифров TLS, чтобы разрешитьБЕЗОПАСНОСТЬ256 :SECURE128
LDAP_TLS_CHECK_PEERЗапрос и проверка сертификата сервера LDAP1
LDAP_TLS_CACERT_FILEПуть к файлу сертификата CA. Используется, когда включена проверка сертификата сервера./etc/ssl/certs/ca-certificates.crt
LDAP_TLS_CACERT_DIRПуть к каталогу сертификатов CA. Используется, когда включена проверка сертификата сервера./etc/ssl/сертификаты
LDAP_START_TLSВключите START_TLS, требуется LDAPv3, URL-адрес должен быть ldap://, а не ldaps://0

Аутентификация с использованием токенов JWT

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

ПеременнаяОписаниеПример
JWT_APP_IDИдентификатор приложенияmy_jitsi_app_id
JWT_APP_SECRETСекрет приложения известен только вашему токенуmy_jitsi_app_secret
JWT_ACCEPTED_ISSUERS(Необязательно) Установите asap_accepted_issuers в виде списка, разделенного запятыми.мой_веб_клиент,мое_приложение_клиент
JWT_ACCEPTED_AUDIENCES(Необязательно) Установите asap_accepted_audiences в виде списка, разделенного запятыми.мой_сервер1,мой_сервер2
JWT_ASAP_KEYSERVER(Необязательно) Установите asap_keyserver URL-адрес, по которому можно найти открытые ключи.https://example.com/asap>
JWT_ALLOW_EMPTY(Необязательно) Разрешить анонимным пользователям без JWT при проверке JWT, если они предусмотрены.0
JWT_AUTH_TYPE(Необязательно) Определяет, какой модуль используется для обработки входящих JWT.жетон
JWT_TOKEN_AUTH_MODULE(Необязательно) Определяет, какой модуль используется для проверки JWT.token_verification

Это можно проверить с помощью jwt.io отладчик. Используйте следующий пример полезных данных:

{
  "context": {
    "user": {
      "avatar": "https://robohash.org/john-doe",
      "name": "John Doe",
      "email": "jdoe@example.com"
    }
  },
  "aud": "my_jitsi_app_id",
  "iss": "my_jitsi_app_id",
  "sub": "meet.jitsi",
  "room": "*"
}

Аутентификация с использованием матрицы

Для получения дополнительной информации см. документацию «Проверка пользователя матрицы аутентификации Prosody». здесь .

ПеременнаяОписаниеПример
MATRIX_UVS_URLБазовый URL-адрес службы проверки пользователей матрицы (без завершающей косой черты)https://uvs.example.com:3000
MATRIX_UVS_ISSUER(необязательно) Эмитент передаваемого токена аутентификации. Должно соответствовать тому, что установлено как iss в JWT.эмитент (по умолчанию)
MATRIX_UVS_AUTH_TOKEN(необязательно) токен аутентификации службы проверки пользователей, если аутентификация включенасмени меня
MATRIX_UVS_SYNC_POWER_LEVELS(необязательно) Сделайте модераторов комнаты Matrix владельцами комнаты Prosody.1

Аутентификация с использованием токена гибридной матрицы

Вы можете использовать Hybrid Matrix Token для аутентификации пользователей. Он поддерживает Matrix и JWT Token аутентификации при той же настройке. Чтобы включить его, вам необходимо включить аутентификацию с помощью ENABLE_AUTH и установить AUTH_TYPE к hybrid_matrix_token, затем настройте параметры, которые вы можете увидеть ниже.

Для получения дополнительной информации см. документацию «Hybrid Matrix Token». здесь .

ПеременнаяОписаниеПример
MATRIX_UVS_URLБазовый URL-адрес службы проверки пользователей матрицы (без завершающей косой черты)https://uvs.example.com:3000
MATRIX_UVS_ISSUER(необязательно) Эмитент передаваемого токена аутентификации. Должно соответствовать тому, что установлено как iss в JWT. Это позволяет всем эмитентам ( *) по умолчанию.мой_эмитент
MATRIX_UVS_AUTH_TOKEN(необязательно) токен аутентификации службы проверки пользователей, если аутентификация включенаmy_matrix_secret
MATRIX_UVS_SYNC_POWER_LEVELS(необязательно) Сделайте модераторов комнаты Matrix владельцами комнаты Prosody.1
MATRIX_LOBBY_BYPASS(необязательно) Разрешить участникам комнаты Matrix обходить проверку в вестибюле Jitsi.1
JWT_APP_IDИдентификатор приложенияmy_jitsi_app_id
JWT_APP_SECRETСекрет приложения известен только вашему токенуmy_jitsi_app_secret
JWT_ALLOW_EMPTY(Необязательно) Разрешить анонимным пользователям без JWT при проверке JWT, если они предусмотрены.0

Внешняя аутентификация

ПеременнаяОписаниеПример
TOKEN_AUTH_URLВыполните аутентификацию с помощью внешнего сервиса или просто выберите внешнее окно аутентификации, если оно уже есть.https://auth.meet.example.com/{room}>

Совместное редактирование документов с помощью Etherpad

Вы можете совместно редактировать документ через Этерпад . Чтобы включить его, установите параметры конфигурации ниже и запустите Docker Compose с дополнительным файлом конфигурации. etherpad.yml.

Вот необходимые опции:

ПеременнаяОписаниеПример
ETHERPAD_URL_BASEУстановить URL-адрес etherpad-litehttp://etherpad.meet.jitsi:9001

Виртуальная доска для совместной работы с использованием Excalidraw

Вы можете использовать виртуальную доску для совместной работы через Экскалидро . Чтобы включить набор WHITEBOARD_ENABLED и запустите Docker Compose с дополнительным файлом конфигурации. whiteboard.yml.

Вот необходимые опции:

ПеременнаяОписаниеЗначение по умолчанию
WHITEBOARD_ENABLEDВключить надстройку доскиЛОЖЬ

Эти варианты также доступны

ПеременнаяОписаниеПример
WHITEBOARD_COLLAB_SERVER_PUBLIC_URLУстановить URL-адрес доскиhttp://whiteboard.meet.jitsi:3000

Конфигурация транскрипции

Если вы хотите включить функцию транскрипции, установите параметры конфигурации ниже и запустите Docker Compose с дополнительным файлом конфигурации transcriber.yml.

ПеременнаяОписаниеПример
ENABLE_TRANSCRIPTIONSВключить транскрипцию Jigasi в конференции1

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

ПеременнаяОписаниеПо умолчанию
GC_PROJECT_IDproject_id из учетных данных Google Cloud
GC_PRIVATE_KEY_IDprivate_key_id из учетных данных Google Cloud
GC_PRIVATE_KEYprivate_key из учетных данных Google Cloud
GC_CLIENT_EMAILclient_email из учетных данных Google Cloud
GC_CLIENT_IDclient_id из учетных данных Google Cloud
GC_CLIENT_CERT_URLclient_x509_cert_url из учетных данных Google Cloud
JIGASI_TRANSCRIBER_ADVERTISE_URLДжигаси опубликует в чате URL-адрес с файлом транскрипции.истинный
JIGASI_TRANSCRIBER_CUSTOM_SERVICEJigasi будет использовать этот класс для пользовательских транскрипций вместо облака Google.
JIGASI_TRANSCRIBER_CUSTOM_TRANSLATION_SERVICEJigasi будет использовать этот класс для пользовательских транзакций вместо облака Google.
JIGASI_TRANSCRIBER_ENABLE_SAVINGJigasi сохранит результаты в файл транскрипции.истинный
JIGASI_TRANSCRIBER_FILTER_SILENCEJigasi будет фильтровать тихий звук и не пересылать его на серверы.
JIGASI_TRANSCRIBER_LIBRETRANSLATE_URLURL-адрес сервисов libretranslate
JIGASI_TRANSCRIBER_OCI_COMPARTMENTОтсек OCI для использования с сервисами Oracle Cloud Speech AI.
JIGASI_TRANSCRIBER_OCI_REGIONНазвание региона OCI для использования со службами Oracle Cloud Speech AI.
JIGASI_TRANSCRIBER_RECORD_AUDIOJigasi будет записывать звук, когда транскрибатор включен.истинный
JIGASI_TRANSCRIBER_REMOTE_CONFIG_URLURL-адрес для управления специальной службой транскрибирования на основе сведений о конференции
JIGASI_TRANSCRIBER_SEND_TXTJigasi отправит расшифрованный текст в чат, когда расшифровщик включен.истинный
JIGASI_TRANSCRIBER_USERПользователь Jigasi XMPP
JIGASI_TRANSCRIBER_VOSK_URLURL-адрес для использования с серверной частью vosk
JIGASI_TRANSCRIBER_WHISPER_URLURL-адрес для использования с серверной частью шепота
JIGASI_TRANSCRIBER_WHISPER_PRIVATE_KEY_NAMEИдентификатор закрытого ключа для использования с шепотом
JIGASI_TRANSCRIBER_WHISPER_PRIVATE_KEYМатериал закрытого ключа для использования шепотом, без символов новой строки или разделителей START/END.

Чтобы настроить учетные данные Google Cloud, прочтите https://cloud.google.com/text-to-speech/docs/quickstart-protocol > раздел «Прежде чем начать» пункты с 1 по 5.

Конфигурация ведения журнала Sentry

ПеременнаяОписаниеЗначение по умолчанию
JVB_SENTRY_DSNИмя источника данных Sentry (конечная точка для проекта Sentry)https://public:private@host:port/1
JICOFO_SENTRY_DSNИмя источника данных Sentry (конечная точка для проекта Sentry)https://public:private@host:port/1
JIGASI_SENTRY_DSNИмя источника данных Sentry (конечная точка для проекта Sentry)https://public:private@host:port/1
SENTRY_ENVIRONMENTДополнительная информация об окружающей среде для фильтрации событийпроизводство
SENTRY_RELEASEДополнительная информация о выпуске для фильтрации событий1.0.0

Конфигурация сервера TURN

Настройте внешние серверы TURN.

ПеременнаяОписаниеЗначение по умолчанию
TURN_CREDENTIALSУчетные данные для серверов TURN
TURN_HOSTИмена хостов серверов TURN в виде списка, разделенного запятыми (транспорт UDP или TCP)
TURN_PORTПорт сервера TURN (транспорт UDP или TCP)443
TURN_TRANSPORTПротоколы сервера TURN в виде списка, разделенного запятыми (UDP или TCP или оба)TCP
TURNS_HOSTИмена хостов серверов TURN в виде списка, разделенного запятыми (транспорт TLS)
TURNS_PORTПорт сервера TURN (транспорт TLS)443
TURN_TLLМаксимальная продолжительность распределения TURN (сек)86400

Расширенная конфигурация

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

ПеременнаяОписаниеЗначение по умолчанию
XMPP_DOMAINВнутренний домен XMPPвстреча.джици
XMPP_AUTH_DOMAINВнутренний домен XMPP для аутентифицированных сервисовauth.meet.jitsi
XMPP_SERVERИмя внутреннего XMPP-сервера xmpp.meet.jitsixmpp.meet.jitsi
XMPP_BOSH_URL_BASEURL-адрес внутреннего XMPP-сервера для модуля BOSHhttp://xmpp.meet.jitsi:5280
XMPP_MUC_DOMAINДомен XMPP для MUCmuc.meet.jitsi
XMPP_INTERNAL_MUC_DOMAINДомен XMPP для внутреннего MUCАнал-мой.
XMPP_GUEST_DOMAINДомен XMPP для неаутентифицированных пользователейгость.meet.jitsi
XMPP_RECORDER_DOMAINДомен для рекордера JibriRecorder.meet.jitsi
XMPP_MODULESПользовательские модули Prosody для XMPP_DOMAIN (через запятую)информация, предупреждение
XMPP_MUC_MODULESПользовательские модули Prosody для компонента MUC (через запятую)информация, предупреждение
XMPP_INTERNAL_MUC_MODULESПользовательские модули Prosody для внутреннего компонента MUC (через запятую)информация, предупреждение
GLOBAL_MODULESПользовательские просодические модули для загрузки в глобальной конфигурации (через запятую)статистика, оповещение
GLOBAL_CONFIGПользовательская строка конфигурации с экранированными символами новой строкиfoo = бар;nkey = значение;
RESTART_POLICYПолитика перезапуска контейнерапо умолчанию unless-stopped
DISABLE_HTTPSОбрабатывать соединения TLS вне этой настройки.0
ENABLE_HTTP_REDIRECTПеренаправить HTTP-трафик на HTTPS0
LOG_LEVELУправляет тем, какие журналы выводятся из просодии и связанных модулей.информация
ENABLE_HSTSОтправить strict-transport-security заголовок, чтобы заставить браузеры использовать безопасное и доверенное соединение. Рекомендуется для производственного использования.1
ENABLE_IPV6Предоставляет средства для отключения IPv6 в средах, которые его не поддерживают.1
ENABLE_COLIBRI_WEBSOCKET_UNSAFE_REGEXВключено старое небезопасное регулярное выражение для URL-адресов JVB colibri-ws. ВНИМАНИЕ. Включайте с осторожностью: это регулярное выражение разрешает подключения к произвольным внутренним IP-адресам и не рекомендуется для использования в рабочей среде. Небезопасное регулярное выражение определяется как [a-zA-Z0-9-\._]+0
COLIBRI_WEBSOCKET_JVB_LOOKUP_NAMEDNS-имя для поиска IP-адреса JVB, используется для значения по умолчанию: COLIBRI_WEBSOCKET_REGEXjvb
COLIBRI_WEBSOCKET_REGEXПереопределяет регулярное выражение colibri, используемое для проксирования в JVB. Рекомендуется переопределить в рабочей среде значения, соответствующие возможным диапазонам IP-адресов JVB.по умолчанию dig $COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME пока не DISABLE_COLIBRI_WEBSOCKET_JVB_LOOKUP установлено значение true
DISABLE_COLIBRI_WEBSOCKET_JVB_LOOKUPКонтролирует, запускать ли dig $COLIBRI_WEBSOCKET_JVB_LOOKUP_NAME при определении COLIBRI_WEBSOCKET_REGEX0

Расширенные параметры просодии

ПеременнаяОписаниеЗначение по умолчанию
PROSODY_RESERVATION_ENABLEDВключить REST API резервирования ProsodyЛОЖЬ
PROSODY_RESERVATION_REST_BASE_URLБазовый URL-адрес REST API резервирования Prosody
PROSODY_AUTH_TYPEВыберите тип аутентификации для Prosody (внутренняя, jwt или ldap).AUTH_TYPE
PROSODY_ENABLE_METRICSВключает модуль http_openmetrics, который предоставляет метрики Prometheus на /metricsЛОЖЬ
PROSODY_METRICS_ALLOWED_CIDRБлоку CIDR разрешен доступ к метрикам172.16.0.0/12

Расширенные параметры Jicofo

ПеременнаяОписаниеЗначение по умолчанию
JICOFO_COMPONENT_SECRETПароль компонента XMPP для Jicofos3cr37
JICOFO_AUTH_USERПользователь XMPP для клиентских подключений Jicofoфокус
JICOFO_AUTH_PASSWORDПароль XMPP для клиентских подключений Jicofo<unset>
JICOFO_ENABLE_AUTHВключить аутентификацию в JicofoENABLE_AUTH
JICOFO_AUTH_TYPEВыберите тип аутентификации для Jicofo (внутренняя, jwt или ldap).AUTH_TYPE
JICOFO_AUTH_LIFETIMEВыберите значение тайм-аута сеанса для аутентифицированного пользователя.24 часа
JICOFO_ENABLE_HEALTH_CHECKSВключите проверки работоспособности внутри Jicofo, что позволит использовать REST API для проверки статуса Jicofo.ЛОЖЬ

Расширенные параметры JVB

ПеременнаяОписаниеЗначение по умолчанию
JVB_AUTH_USERПользователь XMPP для клиентских подключений JVB MUCjvb
JVB_AUTH_PASSWORDПароль XMPP для клиентских подключений JVB MUC<unset>
JVB_STUN_SERVERSСерверы STUN, используемые для обнаружения общедоступного IP-адреса сервера.stun.l.google.com:19302, stun1.l.google.com:19302, stun2.l.google.com:19302
JVB_PORTUDP-порт для мультимедиа, используемый Jitsi Videobridge10000
JVB_COLIBRI_PORTПорт COLIBRI REST API JVB, доступный для локального хоста8080
JVB_BREWERY_MUCИмя MUC для пула JVBпивоварня jvbb
COLIBRI_REST_ENABLEDВключите API REST COLIBRI.истинный
SHUTDOWN_REST_ENABLEDВключить REST API выключенияистинный

Расширенные возможности Джигаси

ПеременнаяОписаниеЗначение по умолчанию
JIGASI_ENABLE_SDES_SRTPВключить SDES-srtp0
JIGASI_SIP_KEEP_ALIVE_METHODМетод поддержки активностиПАРАМЕТРЫ
JIGASI_HEALTH_CHECK_SIP_URIРасширение проверки работоспособности
JIGASI_HEALTH_CHECK_INTERVALИнтервал проверки работоспособности300000
JIGASI_XMPP_USERПользователь XMPP для клиентских подключений Jigasi MUCДжигаси
JIGASI_XMPP_PASSWORDПароль XMPP для клиентских подключений Jigasi MUC<unset>
JIGASI_BREWERY_MUCНазвание MUC для пула JigasiДжигасипивоварня
JIGASI_PORT_MINМинимальный порт для носителей, используемых Jigasi20000
JIGASI_PORT_MAXМаксимальный порт для мультимедиа, используемый Jigasi20050

Работа за NAT или в среде локальной сети

При работе в среде локальной сети или в общедоступном Интернете через NAT JVB_ADVERTISE_IPS переменная env должна быть установлена. Эта переменная позволяет контролировать, какие IP-адреса и порты JVB будет рекламировать для медиатрафика WebRTC. Его необходимо установить независимо от использования обратного прокси-сервера, поскольку медиа (аудио/видео) будет получать именно IP-адрес, а не HTTP-трафик, поэтому обратный прокси-сервер не учитывается.

Если ваши пользователи заходят через Интернет (а не через локальную сеть), скорее всего, это будет ваш общедоступный IP-адрес. Если это настроено неправильно, вызовы будут прерываться, когда к собранию присоединятся более двух пользователей.

Публичный IP-адрес пытается обнаружить через Оглушение . STUN-серверы можно указать с помощью JVB_STUN_SERVERS вариант.

Разделить горизонт

Если вы работаете в среде с разделенным горизонтом (внутренние клиенты локальной сети подключаются к локальному IP-адресу, а другие клиенты подключаются к общедоступному IP-адресу), вы можете указать несколько объявленных IP-адресов, разделив их запятыми:

JVB_ADVERTISE_IPS=192.168.1.1,1.2.3.4

Если ваш внешний порт отличается от внутреннего JVB_PORT вы можете указать объявленный порт вместе с объявленным IP-адресом:

JVB_ADVERTISE_IPS=192.168.1.1#12345,fe80::1#12345

Автономная/автономная установка

Если ваша установка не имеет доступа к Интернету, вам необходимо отключить STUN на JVB, поскольку обнаружение его собственного IP-адреса не удастся, но в этом типе среды это не обязательно.

JVB_DISABLE_STUN=true

Настройте UDP-буферы

Если у вас возникли проблемы с UDP-трафиком, например проблемы с синхронизацией, пропуск кадров и т. п., или если вы ожидаете высокий трафик и большие конференции, возможно, вам стоит настроить размеры UDP-буфера. Вам нужно сделать это в хост-системе, на которой размещен контейнер jvb. Для этого вы можете получить это файл конфигурации sysctl и сохраните его в /etc/sysctl.d и загрузите его через: sysctl --system.

Доступ к журналам сервера

Поведение по умолчанию docker-jitsi-meet это войти в систему stdout.

Пока журналы отправляются на stdout, они не теряются: если не настроено удаление всех журналов, Docker сохраняет их доступными для будущего извлечения и обработки.

Если вам нужен доступ к журналам контейнера, у вас есть несколько вариантов. Вот основные из них:

Например, если вы хотите иметь все журналы, относящиеся к <service_name> написано /var/log/jitsi/<service_name> как json вывод, вы можете использовать docker-файл-журнал-драйвер и настройте его, добавив следующий блок в свой docker-compose.yml файл на том же уровне, что и файл image блок выбранных <service_name>:

services:
    <service_name>:
        image: ...
        ...
        logging:
            driver: file-log-driver
            options:
                fpath: "/jitsi/<service_name>.log"

Если вы хотите отображать только message часть входа в систему json формате, просто выполните следующую команду (например, если fpath был настроен на /jitsi/jvb.log), который использует jq чтобы извлечь соответствующую часть журналов:

sudo cat /var/log/jitsi/jvb.log | jq -r '.msg' | jq -r '.message'

Инструкции по сборке

Создание образов позволяет редактировать файлы конфигурации каждого образа по отдельности, предоставляя больше возможностей настройки для вашего развертывания.

Образы докера можно создать, запустив команду make команда в основной папке репозитория. Если вам нужно перезаписать существующие изображения из удаленного источника, используйте FORCE_REBUILD=1 make.

Если вы используете нестабильную ветку, создайте образы с помощью FORCE_REBUILD=1 JITSI_RELEASE=unstable make.

Теперь вы можете бежать docker compose up по-прежнему.

Использование обратного прокси

При запуске обратного прокси-сервера с того же хоста связь между прокси-сервером и Jitsi Meet часто осуществляется по протоколу HTTP, а не HTTPS, поскольку обычно у нас нет действительных сертификатов для localhost.

Отключить HTTPS

HTTPS можно отключить в конфигурации Docker Compose (поскольку HTTPS, вероятно, не будет работать на локальном хосте):

DISABLE_HTTPS=1
ENABLE_HTTP_REDIRECT=0
ENABLE_LETSENCRYPT=0

Не раскрывайте порты Jitsi Meet публично.

По умолчанию HTTP_PORT и HTTPS_PORT привязываются к любому IP-адресу и поэтому являются общедоступными, если их не блокирует брандмауэр. При использовании обратного прокси в этом нет необходимости. Это можно изменить, обновив конфигурацию портов веб-контейнера:

- '127.0.0.1:${HTTP_PORT}:80'
            - '127.0.0.1:${HTTPS_PORT}:443'

вместо

- '${HTTP_PORT}:80'
            - '${HTTPS_PORT}:443'

Настройка обратного прокси

По умолчанию в этой настройке используются соединения WebSocket для двух основных компонентов:

  • Сигнализация (XMPP)
  • Мостовой канал (колибри)

Из-за поэтапного характера WebSocket обратный прокси-сервер должен правильно завершать и пересылать соединения WebSocket. Такого лечения требуют 2 маршрута:

  • /xmpp-websocket
  • /colibri-ws

Остальные HTTP-запросы должны обрабатываться веб-контейнером.

В следующих примерах конфигурации http://localhost:8000/ — это URL-адрес входа веб-службы ( 8000 соответствует HTTP_PORT).

nginx

С помощью nginx эти маршруты можно перенаправить, используя следующий фрагмент конфигурации:

Апач

С Апачем, mod_proxy, mod_proxy_http и mod_proxy_wstunnel необходимо включить.

Обратный прокси-сервер можно настроить с помощью следующего фрагмента конфигурации:

<IfModule mod_proxy.c>
    <IfModule mod_proxy_wstunnel.c>
        ProxyTimeout 900
        ProxyPass /xmpp-websocket ws://localhost:8000/xmpp-websocket
        ProxyPass /colibri-ws/ ws://localhost:8000/colibri-ws/
        ProxyPass / http://localhost:8000/
        ProxyPassReverse / http://localhost:8000/
    </IfModule>
</IfModule>

Отключение соединений WebSocket

Если использование WebSockets невозможно, эти переменные среды можно настроить на возврат к опросу HTTP и каналам данных WebRTC:

ENABLE_SCTP=1
ENABLE_COLIBRI_WEBSOCKET=0
ENABLE_XMPP_WEBSOCKET=0