Всем Приветь. Как вы уже обратили внимание, порядок публикации нарушен. Изначально планировалось выпустить эту статью в качестве третьей части цикла, однако она стала второй. Это объясняется тем, что поднять один новый сервер для Matrix дешевле, чем несколько для высоконагруженного сервиса Jitsi-meet. Без паники, все будет. А пока займемся Matrix. Сразу хочу отметить тот факт, что данный мануал не является полностью моим. Это перевод оригинального мануала разработчиков с моими дополнениями и адаптацией. И вошел он в данную серию статей, ибо связан с jitsi-meet (ну или их можно связать вместе). Прежде чем мы погрузимся в команды, конфигурацию и "танцы" поговорим немного на тему "а зачем и кому это надо".... Причин может быть много: от личной паранойи до требований безопасности в компании. Matrix-synapse - это мессенджер, который вы можете не только скачать или открыть в браузере, пройти регистрацию и общаться, но и поднять собственный сервер, установить на него серверную часть matrix, а потом общаться в нем с полной уверенностью, что ваша переписка не только шифруется, но и хранится не у кого-то, а у вас на сервере. Если уж совсем паранойить, то все это можно запихуть в VPN и доступ к серверу будет только у тех, у кого есть подключение к VPN (тут мы такое рассматривать не будем, а настроим только matrix в связке с jitsi).  В прошлой статье мы уже настроили два сервера: jitsi-meet - для видеоконференций и jibri - для записи и/или трансляции этих видеоконференций. Сейчас мы будем расширять наши возможности. Мы поднимем сервер со своим мессенджером и привяжем его к нашему jitsi, дабы совершать видеовызовы через него. Сервера поднимал тут. Еще использую сервера тут, данный хостинг имеет большое разнообразие локаций по приемлемым ценам. Я все делаю на debian 9, если это противоречит вашим религиозным взглядам, то использованные тут команды подстраивайте под свою ОС. Если вы хотите, то можете поднимать Matrix на том же сервере, где у вас поднят Jitsi-meet или на отдельном: этот мануал подойдет для обоих вариантов. Начнем мы с того, что создадим DNS записи. Нам понадобится их три: dnsname.com, matrix.dnsname.com и riot.dnsname.com - на IP нашего сервера.  Я использовал nginx для jitsi и не буду отходить от своей традиции и буду настраивать его и для matrix. Если nginx еще не установлен, то: Если nginx установлен, то создаем конфигурацию (скопируем default и перенастроим): Теперь редактируем конфигурацию: И меняем следующие директивы: Сохраняем и закрываем.  Тоже самое делаем для riot.dnsname.com: Конфигурацию matrix.dnsname.com приводим к следующему виду: Теперь пора заняться SSL сертификатами. Мы создадим и подпишем бесплатные трехмесячные сертификаты Let's Encrypt. Для этого делаем следующее: Этой же командой спустя три месяца можно продлить сертификаты. Теперь нужно включить виртуальные хосты и перезагрузить nginx: Из коробки Matrix использует SQLite - при малом количестве пользователей этого достаточно, однако рекомендуется использовать Postgresql (я настоятельно рекомендую сразу начать использовать Postgresql). Для тех, кто просто хочет "пощупать" Matrix, этот шаг можно пропустить, ну а мы, все же, сразу поставим Postgresql, ибо миграция c SQLite на Postgresql - в некоторых случаях может стать теми еще "танцами". Поехали... Переходим к установке matrix. В процессе установки будет запрошено DNS имя - указываем dnsname.com. Устанавливаем Postgresql, создаем пользователя и БД для matrix-synapse: Открываем конфигурационный файл Matrix: Находим строку #servername: "servername" и меняем значение на "dnsname.com", убираем "#", тоже самое делаем со строкой #registration_shared_secret: "UIBfgsjkdfhj3568JHGIUIEBfy3764JH" и вставляем в кавычках ключ, который мы получили ранее. Дальше ищем опцию #enable_registration: false, убираем "#" и меняем false на true Так же находим блок database снимаем "#"  и подставляем свои значения: А блок database, где прописана SQLite (она ниже) - комментируем (ставим "#"). Далее идем и вставляем строку host    synapse     synapse_user    ::1/128     md5    как у меня: Перезапускаем Matrix и Postgresql: Зарегистрируем пользователя с правами администратора: Будут запрошены данные: логин, пароль и права администратора. Если у вас уже работает Matrix с SQLite, то можно мигрировать на Postgresql. Для этого нам надо сделать копию homeserver.yaml, сделать две копии homeserver.db (одну мы сохраним для "потомков", ну или если что-то пойдет не туда, а со второй будем работать). Подправить конфиг, мигрировать и перезагрузиться сервисы. Теперь с файлом homeserver-postgresql.yaml надо сделать это. Останавливаем Matrix: Далее копируем базы и мигрируем. Если остались какие-то вопросы, то можно посмотреть сюда. Так же можно рассказать всем пользователям Matrix о своем сервере, но я не буду тут это расписывать, а дам ссылку, где можно это посмотреть. Теперь мы можем перейти в браузере по адресу https://matrix.dnsname.com и увидеть, что это работает. Осталось совсем немного и мы сможем погрузиться в мир "черт, как же это все работает....". Мы уже сделали виртуальный хост riot.dnsname.com и указали директорию /var/www/riot.dnsname.com/riot;, однако такой директории еще нет. Давайте ее создадим и загрузим туда веб-приложение Riot (Element) из git: Далее нам надо привести содержимое конфигурационного файла config.json к следующему виду (меняем "base_url": "https://matrix.dnsname.com",             "server_name": "dnsname.com", "jitsi": {         "preferredDomain": "jitsi.dnsname.com" - последняя настройка свяжет наш matrix и jitsi): Осталось только перезагрузить службы (или сервер целиком): Осталось понять, как этим пользоваться. Я не буду детально обрисовывать использование, а расскажу, как зарегистрироваться, установить приложение, добавить "друга по переписке". Поехали: Переходим в браузере на https://riot.dnsname.com Периодически тут выкатывают обновления серверной части Riot. Обновиться очень просто. Идем на Гит (ссылка выше) и берем там ссылки необходимой версии релиза, а именно нам нужны element-vx.x.xx.tar.gz и element-vx.x.xx.tar.gz.asc. Далее идем: Теперь надо обновить файл конфигурации как мы делали ранее тут. Репозиторий с релизами Riot. Клиентское приложение element.   Свой сервер видеоконференций Jitsi. Часть 1 Jitsi-meet: авторизация по JWT-токену  Системный администратор.