Обзор развертывания Jitsi Meet на сервере¶
Предпосылки и предварительные требования¶
Для успешного развертывания системы необходимо наличие сервера с операционной системой Debian или Ubuntu. Требуется наличие прав суперпользователя (root) или доступа через sudo.
Система требует подключения к интернету для загрузки пакетов и получения сертификатов. Необходимо наличие зарегистрированного доменного имени (FQDN), которое будет использоваться для доступа к видеоконференциям.
Открытые порты в брандмауэре: - Порт 80 (TCP) для HTTP-трафика и перенаправления на HTTPS. - Порт 443 (TCP) для защищенного HTTPS-трафика. - Порт 10000 (UDP) для передачи видеопотоков (Jitsi Videobridge).
Структура файлов и каталогов¶
Конфигурация веб-сервера и доменов хранится в следующих директориях: - Конфигурация виртуальных хостов Nginx: /etc/nginx/sites-available/ и /etc/nginx/sites-enabled/. - Пользовательские конфигурации для прокси-контейнера: /data/nginx/user_conf.d/. - Конфигурация Docker Compose для прокси-сервера: /root/nginx/compose.yml. - Сертификаты Let's Encrypt: /etc/letsencrypt/ (монтируется в контейнер).
Основные пакеты и сервисы устанавливаются в стандартные системные каталоги Debian/Ubuntu.
Процесс установки приложения¶
Установка производится через пакетный менеджер apt с использованием репозиториев разработчиков.
- Добавление ключей подписи и репозиториев:
- Репозиторий Jitsi:
deb https://download.jitsi.org stable/. -
Репозиторий Prosody:
deb [signed-by=/usr/share/keyrings/prosody-debian-packages.key] https://packages.prosody.im/debian jammy main. -
Установка зависимостей и основных пакетов:
curl,gnupg,apt-transport-https,ca-certificates.lua5.2.- Пакеты Jitsi:
jitsi-meet,jicofo,jitsi-videobridge2,jitsi-meet-prosody,jitsi-meet-web,jitsi-meet-web-config,jitsi-meet-turnserver. -
Веб-сервер:
nginx. -
Настройка параметров установки:
- Указание полного доменного имени (FQDN) для веб-конфигурации и видеомоста.
-
Выбор типа сертификата: Let's Encrypt.
-
Перенастройка конфигурации веб-сервера:
- Запуск команды
dpkg-reconfigure -f noninteractive jitsi-meet-web-configдля применения доменного имени, если файл виртуального хоста отсутствует. - Активация созданного файла конфигурации в директории
/etc/nginx/sites-enabled/. - Удаление стандартного сайта по умолчанию (
default).
Контейнеры Docker и их запуск¶
Для управления SSL-сертификатами и проксированием трафика используется контейнеризированное решение на базе docker compose.
Конфигурация контейнера описана в файле /root/nginx/compose.yml.
Параметры запуска контейнера nginx: - Образ: jonasal/nginx-certbot:latest. - Режим сети: host. - DNS-серверы: 1.1.1.1, 8.8.8.8. - Переменная окружения CERTBOT_EMAIL для указания адреса администратора. - Монтирование тома nginx_secrets в /etc/letsencrypt для хранения сертификатов. - Монтирование директории /data/nginx/user_conf.d в /etc/nginx/user_conf.d внутри контейнера для пользовательских конфигов.
Запуск контейнера осуществляется командой:
из директории/root/nginx. Прокси серверы¶
В системе используется Nginx в двух ролях: как системный пакет для Jitsi и как контейнеризированный прокси для управления сертификатами.
Конфигурация прокси-сервера для Jitsi создается в файле /data/nginx/user_conf.d/<prefix><server_id>.<zone>.conf.
Настройки сервера: - Перенаправление HTTP (порт 80) на HTTPS. - Слушание HTTPS (порт 443) с поддержкой ssl и http2. - Проксирование всего трафика (/) на https://127.0.0.1:8443/ с отключением проверки SSL (proxy_ssl_verify off). - Передача заголовков: Host, X-Real-IP, X-Forwarded-For, X-Forwarded-Proto, Upgrade, Connection.
Специальные маршруты для WebSocket-соединений: - /xmpp-websocket -> https://127.0.0.1:8443/xmpp-websocket. - /colibri-ws/ -> https://127.0.0.1:8443/colibri-ws/. - /http-bind -> https://127.0.0.1:8443/http-bind.
Сертификаты Let's Encrypt выпускаются скриптом /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh с передачей адреса электронной почты администратора.
Права доступа и безопасность¶
Брандмауэр UFW настроен следующим образом: - Разрешен входящий трафик на порты 80/tcp, 443/tcp, 10000/udp. - Политика по умолчанию: allow. - Брандмауэр активирован.
Конфигурация Nginz в системном пакете модифицируется для: - Удаления прослушивания порта 8443 на 127.0.0.1. - Явного указания прослушивания портов 80 и 443 ssl http2. - Установки server_name на значение доменного имени.
Файлы конфигурации в директории /root/nginx и /data/nginx/user_conf.d имеют права доступа 0755 для директорий и 0644 для файлов, владелец root.
Запуск, остановка и обновление¶
Управление основными сервисами Jitsi осуществляется через systemd.
Перезапуск сервисов после установки или изменения конфигурации:
systemctl restart prosody
systemctl restart jicofo
systemctl restart jitsi-videobridge2
systemctl restart nginx
Включение автозапуска сервисов:
systemctl enable prosody
systemctl enable jicofo
systemctl enable jitsi-videobridge2
systemctl enable nginx
Проверка конфигурации Nginx перед перезагрузкой:
Перезагрузка конфигурации Nginx:
Для контейнеризированного прокси-сервера управление осуществляется через docker compose в директории /root/nginx: - Запуск: docker compose up -d. - Остановка: docker compose down. - Обновление: docker compose pull и docker compose up -d.