// DevOps
Как установить Jitsi Meet на свой сервер с помощью Docker
Опубликовано 22.09.2026
Jitsi Meet — открытая система видеоконференций, которую можно развернуть на своём сервере. Проще всего сделать это через Docker: проект выпускает готовые образы и файлы Compose. Ниже — установка по официальному руководству docker-jitsi-meet. Чем свой Jitsi отличается от Google Meet и когда он оправдан, разобрано в статье «Jitsi Meet против Google Meet».
Шаг 1: Подготовка
Понадобятся:
- сервер с Linux, например Ubuntu;
- доменное имя с A-записью на IP-адрес сервера, например
meet.example.com; - Docker и плагин Docker Compose.
Шаг 2: Скачивание релиза
Руководство требует брать архив последнего релиза, а не клонировать репозиторий: в ветке разработки лежат тестовые образы.
wget $(wget -q -O - https://api.github.com/repos/jitsi/docker-jitsi-meet/releases/latest | grep zip | cut -d\" -f4)
unzip <имя-скачанного-архива>.zip
cd <каталог-из-архива>Имя архива и каталога зависит от версии релиза, поэтому посмотрите их после скачивания командой ls.
Шаг 3: Настройка .env
Создайте файл на основе примера и сгенерируйте пароли служебных учётных записей:
bashcp env.example .env ./gen-passwords.shУкажите адрес, по которому будет открываться Jitsi. Переменная называется
PUBLIC_URL(переменнойJITSI_DOMAIN, которую можно встретить в старых инструкциях, вenv.exampleнет):dotenvPUBLIC_URL=https://meet.example.comПо умолчанию веб-интерфейс слушает порты
8000(HTTP) и8443(HTTPS) — это рассчитано на работу за обратным прокси. Если Jitsi будет сам принимать HTTPS и получать сертификат Let’s Encrypt, переключите порты на стандартные и включите сертификат:dotenvHTTP_PORT=80 HTTPS_PORT=443 ENABLE_HTTP_REDIRECT=1 ENABLE_LETSENCRYPT=1 LETSENCRYPT_DOMAIN=meet.example.com LETSENCRYPT_EMAIL=admin@example.comЕсли перед Jitsi уже стоит nginx, порты не меняйте и Let’s Encrypt в Jitsi не включайте — вариант с обратным прокси описан в статье «Jitsi Meet (Docker) за Nginx Reverse Proxy».
Если сервер находится за NAT, укажите его внешний адрес для видеомоста, иначе участники из интернета не получат видео:
dotenvJVB_ADVERTISE_IPS=203.0.113.10Создайте каталоги конфигурации. С релиза
stable-11146контейнеры работают от непривилегированного пользователя (uid 1000) с файловой системой только для чтения, поэтому структура каталогов изменилась и каталогиstorageиtmpдолжны быть доступны на запись:bashmkdir -p ~/.jitsi-meet-cfg/{web,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri,transcriber} mkdir -p ~/.jitsi-meet-cfg/storage/{jibri,prosody,transcripts,web} mkdir -p ~/.jitsi-meet-cfg/tmp/{web-crontabs,web-load-test} chmod 777 ~/.jitsi-meet-cfg/storage/{jibri,prosody,transcripts,web} chmod 777 ~/.jitsi-meet-cfg/tmp/{web-crontabs,web-load-test}Если эти каталоги не создать заранее, контейнеры, которым они нужны, не запустятся и сообщат об ошибке.
Шаг 4: Запуск
Базовый запуск
docker compose up -d
docker compose psДополнительные компоненты
SIP-шлюз (Jigasi):
bashdocker compose -f docker-compose.yml -f jigasi.yml up -dЗапись и трансляции (Jibri):
bashdocker compose -f docker-compose.yml -f jibri.yml up -dСовместное редактирование (Etherpad):
bashdocker compose -f docker-compose.yml -f etherpad.yml up -d
Файлы можно комбинировать, например -f docker-compose.yml -f jigasi.yml -f jibri.yml. Как устроена запись встреч целиком, разобрано в статье «Полный конвейер записи встреч в Jitsi Meet».
Шаг 5: Проверка
Откройте
https://meet.example.com— должен открыться интерфейс Jitsi Meet. Работать нужно именно по HTTPS: по HTTP браузер не даст доступ к камере и микрофону.Откройте порты в межсетевом экране:
80/tcpи443/tcp— веб-интерфейс и выпуск сертификата;10000/udp— медиапотоки видеомоста. Без него страница открывается, но участники не видят и не слышат друг друга.
Проведите пробную встречу с двумя участниками из разных сетей, например с компьютера и с телефона через мобильный интернет.
По умолчанию создать комнату может любой, кто открыл адрес. Как включить авторизацию и оптимизировать сервер — в статье «Jitsi Meet: Настройка авторизации и оптимизация сервера».
Обновление
Скачайте архив нового релиза в отдельный каталог, перенесите в него свой .env и сверьте его с новым env.example: переменные иногда добавляются и переименовываются. Затем в новом каталоге:
docker compose pull
docker compose up -dПеред переходом через релиз stable-11146 создайте новую структуру каталогов из шага 3 — старые релизы использовали другую.
Итог
Jitsi Meet в Docker разворачивается за полчаса: архив релиза, .env с PUBLIC_URL, каталоги конфигурации и три открытых порта. Главные ошибки — не указать PUBLIC_URL, забыть про UDP-порт 10000 и не задать внешний адрес видеомоста на сервере за NAT.
// Reviews
Отзывы по теме
Михаил - великолепный исполнитель! Чувствуется, что человек с огромным опытом. Работа была сделано четко, в срок. Пришлось повозиться из-за неидеальности проекта, который устанавливали на сервер, но Михаил внимательно и вдумчиво подсказывал как и что сделать. В итоге все заработало! Всем рекомендую для кого, важно качество работы!
Михаил - великолепный исполнитель! Чувствуется, что человек с огромным опытом. Работа была сделано четко, в срок. Пришлось повозиться из-за неидеальности проекта, который устанавливали на сервер, но Михаил внимательно и …
// Contact
Нужна помощь?
Свяжись со мной и я помогу решить проблему
Написать в TelegramОтвечаю в течение рабочего дня (03:00–13:00 GMT)
Или оставьте заявку здесь:
// Related