Перейти к содержанию

Обзор развертывания Jitsi на сервере

Предварительные требования и базовые условия

  • Операционная система: Распределение на основе Debian (Ubuntu 22.04 "Jammy" или совместимые версии).

  • Привилегии: Для установки и конфигурации требуются права root или sudo.

  • Домен: Полностью квалифицированное доменное имя (FQDN), указывающее на публичный IP-адрес сервера.

  • Сеть: Входящий трафик должен быть разрешен для портов 80 (TCP), 443 (TCP) и 10000 (UDP).

  • Хранилище: Достаточно дискового пространства для пакетов Jitsi, логов и потенциального хранения медиаданных.

  • Время: Системное время должно быть синхронизировано через NTP для обеспечения действительности сертификатов SSL и работы XMPP.

FQDN конечной панели

Приложение доступно через следующий формат FQDN в домене hostkey.in:

  • Формат: jitsi<Server ID>.hostkey.in

  • Порт: 443 (HTTPS)

  • Пример: Если Server ID равен 123, адрес будет jitsi123.hostkey.in.

Структура файлов и каталогов

Для развертывания Jitsi настроены следующие каталоги и файлы:

  • Файлы конфигурации:

  • Блок сервера Nginx: /etc/nginx/sites-available/jitsi<Server ID>.hostkey.in.conf или /data/nginx/user_conf.d/jitsi<Server ID>.hostkey.in.conf

  • Конфигурация Jitsi Meet: /etc/jitsi/meet/

  • Конфигурация Prosody: /etc/prosody/conf.avail/

  • Сертификаты Let's Encrypt: /etc/letsencrypt/

  • Данные и логи:

  • Логи: /var/log/jitsi/

  • Веб-данные Jitsi Meet: /usr/share/jitsi-meet/

  • Пользовательские конфигурации Nginx (при использовании Docker-прокси): /data/nginx/user_conf.d/

  • Сертификаты:

  • Управляемые Certbot: /etc/letsencrypt/live/ и /etc/letsencrypt/archive/

Процесс установки приложения

Установка приложения выполняется с помощью менеджера пакетов APT с использованием следующих компонентов:

  • jitsi-meet: Основное веб-приложение.

  • jicofo: Jitsi Conference Focus (FOC).

  • jitsi-videobridge2: Медиа-шлюз для обработки видеопотоков.

  • jitsi-meet-prosody: Конфигурация XMPP-сервера для сигнализации.

  • jitsi-meet-web: Статические веб-ресурсы.

  • jitsi-meet-web-config: Управление веб-конфигурацией.

  • jitsi-meet-turnserver: Сервер TURN для обхода NAT (если настроен).

  • nginx: Веб-сервер и обратный прокси.

Шаги установки включают:

  1. Добавление официального репозитория Jitsi (https://download.jitsi.org stable/).

  2. Добавление репозитория Prosody (https://packages.prosody.im/debian jammy main).

  3. Предварительную настройку значений конфигурации (имя хоста, тип сертификата) для автоматизации работы jitsi-meet-web-config.

  4. Запуск команды apt install для развертывания пакетов.

  5. Генерацию SSL-сертификата Let's Encrypt с помощью неинтерактивного скрипта, предоставляемого Jitsi.

Права доступа и безопасность

  • Межсетевой экран (Firewall): UFW включен с правилами, разрешающими трафик на портах 80, 443 и 10000. Все остальные порты заблокированы по умолчанию.

  • Пользователи: Приложение работает под системными учетными записями сервисов (например, prosody, jitsi-videobridge, jicofo). Для ежедневной эксплуатации прямой доступ root не требуется.

  • Ограничения:

  • Стандартный сайт Nginx удален, чтобы гарантировать, что трафик обслуживает только FQDN Jitsi.

  • TLS принудительно включен через конфигурацию Nginx; HTTP-трафик на порту 80 перенаправляется на HTTPS.

  • Настройки прокси отключают проверку SSL для внутреннего upstream (proxy_ssl_verify off), так как внутренний сервис использует самоподписанные сертификаты, управляемые Jitsi.

Базы данных

  • Способ хранения: В стандартных конфигурациях Jitsi Meet в основном использует SQLite для локального хранения.

  • Расположение: Файлы баз данных хранятся в каталоге данных Jitsi, обычно под /var/lib/jitsi-meet/ или управляются по умолчанию пакетом jitsi-meet.

  • Подключение: В предоставленных данных развертывания внешний сервер базы данных (например, MySQL или PostgreSQL) явно не настроен; приложение опирается на локальную файловую базу данных.

Docker-контейнеры и их развертывание

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

  • Сервис: nginx (используется образ jonasal/nginx-certbot:latest).

  • Место развертывания: /root/nginx/compose.yml.

  • Режим сети: Host networking (network_mode: host).

  • Томы (Volumes):

  • nginx_secrets примонтирован в /etc/letsencrypt.

  • /data/nginx/user_conf.d примонтирован в /etc/nginx/user_conf.d для пользовательских конфигураций сайтов.

  • DNS: Резолверы настроены на 1.1.1.1 и 8.8.8.8.

Прокси-серверы

Nginx настроен как обратный прокси для обработки трафика HTTP и HTTPS.

  • Порты: Слушает порты 80 (HTTP) и 443 (HTTPS с SSL и HTTP/2).

  • Внутренняя маршрутизация:

  • Трафик перенаправляется на https://127.0.0.1:8443/ для основного веб-интерфейса.

  • Пути WebSocket и сигнализации перенаправляются на https://127.0.0.1:8443 для определенных конечных точек (endpoints):

    • /xmpp-websocket

    • /colibri-ws/

    • /http-bind

  • Заголовки (Headers): Прокси передает заголовки Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto и Upgrade на бэкенд.

  • SSL: Управляется через Let's Encrypt и Certbot. Сертификаты автоматически выдаются и обновляются.

Настройки разрешений

  • Файлы конфигурации: Файлы конфигурации Nginx принадлежат пользователю root с правами доступа 0644.

  • Каталоги:

  • /root/nginx/: Принадлежит root, права доступа 0755.

  • /data/nginx/user_conf.d/: Принадлежит root, права доступа 0755.

  • Файлы сервисов: Бинарные файлы приложений и стандартные файлы конфигурации следуют системным настройкам разрешений по умолчанию, установленным пакетами APT.

Расположение файлов конфигурации и данных

  • Конфигурация Nginx:

  • Основная: /etc/nginx/sites-available/ или /data/nginx/user_conf.d/ (в зависимости от метода развертывания).

  • Активная: Ссылка (symlink) в /etc/nginx/sites-enabled/.

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

  • Общая конфигурация: /etc/jitsi/meet/.

  • Конфигурация Prosody: /etc/prosody/conf.avail/.

  • Сертификаты:

  • Let's Encrypt: /etc/letsencrypt/.

  • Логи:

  • Системные логи: /var/log/jitsi/.

  • Логи Nginx: /var/log/nginx/.

Доступные порты для подключения

Следующие порты открыты и настроены для доступа клиентов:

  • Порт 80 (TCP): HTTP-трафик, перенаправляется на HTTPS.

  • Порт 443 (TCP): HTTPS-трафик, обслуживает веб-интерфейс Jitsi и подключения WebSocket.

  • Порт 10000 (UDP): Медиа-трафик (RTP) для видеопотоков и потоков аудиоданных.

Запуск, остановка и обновление

Управление сервисами осуществляется через systemd. Следующие сервисы активны и включены:

  • prosody

  • jicofo

  • jitsi-videobridge2

  • nginx

Команды для управления сервисами:

  • Запуск сервисов:

    sudo systemctl start prosody jicofo jitsi-videobridge2 nginx
    

  • Остановка сервисов:

    sudo systemctl stop prosody jicofo jitsi-videobridge2 nginx
    

  • Перезапуск сервисов:

    sudo systemctl restart prosody jicofo jitsi-videobridge2 nginx
    

  • Проверка статуса:

    sudo systemctl status jitsi-meet-web-config
    

Для развертываний на базе Docker используйте docker compose в директории /root/nginx:

  • Запуск:

    docker compose up -d
    

  • Остановка:

    docker compose down
    

question_mark
Я могу вам чем-то помочь?
question_mark
ИИ Помощник ×