Debian & DNS
- Возьмите одну свежую версию Debian 10.
- Укажите DNS-записи для вашего домена. Вы должны использовать отдельные субдомены для различных сервисов в качестве мер защиты, чтобы сделать атаки межсайтового скриптинга менее эффективными. В этом примере мы настроили DNS для:
youdomain.com
(основной сайт)matrix.youdomain.com
(Synapse)riot.youdomain.com
(Riot/Web)jitsi.youdomain.com
(Jitsi meet)
Nginx and LetsEncrypt
- Установите nginx как веб-сервер:
apt-get update && apt -y install nginx
- Перейдите в / etc / nginx / sites-enabled и скопируйте блок конфигурации vhost снизу по умолчанию в новые файлы с именем
dangerousdemos.net
,matrix.dangerousdemos.net
иriot.dangerousdemos.net
. На данный момент мы не создаёмjitsi.dangerousdemos.net
, установщик Jitsi сделает это для нас.- Переименуйте поле server_name в новых файлах, чтобы оно соответствовало имени хоста каждого хоста, и укажите root для соответствующего местоположения для домена (например, /var/www/dangerousdemos.net для основного домена или /var/www/riot.dangerousdemos.net/riot для Riot)
- Для домена Synapse (здесь matrix.dangerousdemos.net) вы должны заменить содержимое блока местоположения на proxy_pass http://localhost:8008; — сказать nginx пропустить трафик в синапс, который по умолчанию прослушивает незашифрованный HTTP-трафик через порт 8008. (не ставьте здесь косую черту в конце URL, иначе nginx будет искажать переадресованные URL).
- Включить TLS через LetsEncrypt на nginx, с помощью:
apt install -y python3-certbot-nginx && certbot --nginx -d yourdomain.com -d riot.yourdomain.com -d matrix.yourdomain.com
(или какими бы ни были ваши домены). - На этом этапе вы сможете зайти на https://dangerousdemos.net и увидеть страницу с действующим HTTPS.
Synapse
Затем установите Synapse через Debian-пакеты, следуя инструкциям на https://github.com/matrix-org/synapse/blob/master/INSTALL.md#debianubuntu (см. Ниже). Если вы не используете Debian, следите за всеми остальными операционными системами, которые поддерживаются!
Вы должны указать имя сервера как домен, который вы хотите, в ваших matrix ID — как в примере yourdomain.com.
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -O /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
sudo tee /etc/apt/sources.list.d/matrix-org.list
sudo apt update
sudo apt install matrix-synapse-py3
Теперь вы сможете перейти на https://matrix.yourdomiancom и увидеть действительную страницу «It works! Synapse is running».
Затем вам нужно включить регистрацию в synapse, прописав enable_registration: true
в /etc/matrix-synapse/homeserver.yaml
и перезапустив сервис systemctl restart matrix-synapse
.
Теперь вам нужно рассказать остальной части Matrix, как найти ваш сервер. Самый простой способ сделать это — опубликовать файл по адресу https://yourdomain.com/.well-known/matrix/server, который сообщает всем имя хоста и порт, где они могут найти synapse для yourdomian.com — в данном случае, это matrix.dangerousdemos.net:443
:
mkdir -p /var/www/dangerousdemos.net/.well-known/matrix
cd /var/www/dangerousdemos.net/.well-known/matrix
echo '{ "m.server": "matrix.dangerousdemos.net:443" }' > server
Riot/Web
Затем установим Riot / Web. Загрузите последнюю версию .tgz с https://github.com/vector-im/riot-web/releases. Вы должны также проверить его подпись GnuPG:
mkdir /var/www/riot.dangerousdemos.net
cd /var/www/riot.dangerousdemos.net
wget https://github.com/vector-im/riot-web/releases/download/v1.5.15/riot-v1.5.15.tar.gz
apt install -y gnupg
wget https://github.com/vector-im/riot-web/releases/download/v1.5.15/riot-v1.5.15.tar.gz.asc
gpg --keyserver keyserver.ubuntu.com --search-keys releases@riot.im
wget https://packages.riot.im/riot-release-key.asc
gpg --import riot-release-key.asc
gpg --verify riot-v1.5.15.tar.gz.asc
tar -xzvf riot-v1.5.15.tar.gz
ln -s riot-v1.5.15 riot
chown www-data:www-data -R riot
cd riot
cp config.sample.json config.json
Затем настраиваем config.json
, чтобы изменить base_url
домашнего сервера на https://yourdomain.com
(т.е. где найти клиент-серверный API для вашего сервера), и измените server_name
на yourdomain.com
.
После этого вы сможете перейти на https://riot.yourdomain.com, зарегистрировать учетную запись, войти в систему и пообщаться с остальной частью Matrix!
Jitsi meet
Мы установим Jitsi meet, чтобы вы могли проводить собственные видеоконференции. У Вас должен быть установлен Debian или Ubuntu.
echo 'deb https://download.jitsi.org stable/' >> /etc/apt/sources.list.d/jitsi-stable.list
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
apt-get update
apt-get -y install jitsi-meet
Мы даем установщику имя хоста jitsi.youdomain.com
. Убедитесь, что этот DNS уже настроен, иначе программа установки не удастся!
Установщик волшебным образом обнаруживает, что у вас установлен nginx, и добавляет соответствующий vhost!
На данный момент мы выбираем самоподписанный сертификат, а затем обновляем его до LetsEncrypt, после с помощью /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh.
Теперь вы сможете перейти на https://jitsi.mydomain.com
и использовать Jitsi meet напрямую.
Наконец, теперь вы можете указать в Riot использовать новый Jitsi, перейдя в его config.json
по адресу /var/www/riot.yourdomian.com/riot/config.json
и изменив preferredDomain
в блоке jitsi с https://jitsi.riot.im
на ваш собственный https://jitsi.yourdomain.com
.
Всё готово для использования Jitsi из вашего нового Riot — Riot / Web имеет возможность встроить Jitsi непосредственно в приложение без необходимости использования менеджера интеграции.