Обзор развертывания 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: Веб-сервер и обратный прокси.
Шаги установки включают:
-
Добавление официального репозитория Jitsi (
https://download.jitsi.org stable/). -
Добавление репозитория Prosody (
https://packages.prosody.im/debian jammy main). -
Предварительную настройку значений конфигурации (имя хоста, тип сертификата) для автоматизации работы
jitsi-meet-web-config. -
Запуск команды
apt installдля развертывания пакетов. -
Генерацию 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
Команды для управления сервисами:
-
Запуск сервисов:
-
Остановка сервисов:
-
Перезапуск сервисов:
-
Проверка статуса:
Для развертываний на базе Docker используйте docker compose в директории /root/nginx:
-
Запуск:
-
Остановка: