Установка Matrix-Synapse с Element Web/X на базе SQLite
Перед установкой настройте домен:
Тип: А
Имя: chat(или любое свое)
Хост: Айпи к которому будет привязан домен.
После того как домен настроен и привязан к айпи адресу перейдем к установке. Используем чистый debian в качестве примера.
Скачиваем утилиту sudo и все обновления командами:
apt install sudo
sudo apt update && sudo apt upgrade -y
Для веб доступа будем использовать Apache:
Установка командой:
sudo apt install -y apache2 certbot
Включение модулей для работы командой:
sudo a2enmod proxy proxy_http ssl headers rewrite
Перезагрузка Apache:
systemctl restart apache2
Далее устанавливаем Matrix Synapse и Coturn:
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
После выполнения следующей команды вас попросит ввести Name of the server вводите туда свой домен например chat.example.ru
sudo apt install -y matrix-synapse-py3 coturn
Далее необходимо получить сертификаты для правильной работы сервиса. (необходимо также пробросить порты 80 и 443 на устройство где стоит сервер):
sudo systemctl stop apache2
В качестве примера chat.example.ru но вы его меняете под свой домен:
sudo certbot certonly --standalone -d chat.example.ru
Далее выполняется настройка Synapse:
sudo nano /etc/matrix-synapse/conf.d/server_name.yaml
Проверьте чтоб там была строчка server_name: "chat.example.ru" если ее нет создайте.
Перед настройкой следующего конфига создайте 2 ключа и запишите их:
openssl rand -hex 32
openssl rand -hex 32
Сама настройка конфига:
sudo nano /etc/matrix-synapse/conf.d/90-custom.yaml
В нем также поменяйте chat.example.ru на свой домен и порт который будет использоваться:
| 1 | enable_registration: false |
| 2 | enable_registration_without_verification: false |
| 3 | |
| 4 | macaroon_secret_key: "ВАШ_СГЕНЕРИРОВАННЫЙ_КЛЮЧ_1" |
| 5 | |
| 6 | turn_uris: |
| 7 | - "turn:chat.example.ru:3478?transport=udp" |
| 8 | - "turn:chat.example.ru:3478?transport=tcp" |
| 9 | |
| 10 | turn_shared_secret: "ВАШ_СГЕНЕРИРОВАННЫЙ_2" |
| 11 | turn_user_lifetime: 86400000 |
| 12 | turn_allow_guests: true |
| 13 | max_upload_size: 4G |
Далее идет настройка Coturn:
sudo nano /etc/turnserver.conf
В этом конфиге вы настраиваете порты один как в прошлом конфиге и еще один для tls, эти два порта будут использоваться для голосовых звонков, нужно заменить весь конфиг на тот что ниже и поменять домены на свои(их также нужно будет пробросить):
| 1 | listening-port=3478 |
| 2 | tls-listening-port=5349 |
| 3 | fingerprint |
| 4 | use-auth-secret |
| 5 | static-auth-secret=ВАШ_СГЕНЕРИРОВАННЫЙ_КЛЮЧ_2 |
| 6 | realm=chat.example.ru |
| 7 | lt-cred-mech |
| 8 | cert=/etc/letsencrypt/live/chat.example.ru/fullchain.pem |
| 9 | pkey=/etc/letsencrypt/live/chat.example.ru/privkey.pem |
| 10 | no-multicast-peers |
| 11 | no-cli |
Перейдем к главной настройке веб интерфейса:
Переходим к временной папке хранения:
cd /tmp
Скачиваем Element:
wget https://github.com/vector-im/element-web/releases/download/v1.11.80/element-v1.11.80.tar.gz
Создаем папку для него:
sudo mkdir -p /var/www/element
Разархивируем:
sudo tar -xzvf element-v*.tar.gz -C /var/www/element --strip-components=1
Копируем файл конфигурации:
sudo cp /var/www/element/config.sample.json /var/www/element/config.json
Далее заходим в файл конфигурации и меняем 2 значения:
sudo nano /var/www/element/config.json
Нужно поменять:
base_url (https://chat.example.ru) server_name (chat.example.ru)
Далее разрешаем использование данной папки:
sudo chown -R www-data:www-data /var/www/element
Теперь необходимо настроить Apache который и будет предоставлять доступ:
nano /etc/apache2/sites-available/chat.example.ru.conf
Вставляем конфиг с соответствующими изменениями:
| 1 | <VirtualHost *:80> |
| 2 | ServerName chat.example.ru |
| 3 | Redirect permanent / https://chat.example.ru/ |
| 4 | </VirtualHost> |
| 5 | |
| 6 | <VirtualHost *:443> |
| 7 | ServerName chat.example.ru |
| 8 | DocumentRoot /var/www/element |
| 9 | |
| 10 | SSLEngine on |
| 11 | SSLCertificateFile /etc/letsencrypt/live/chat.example.ru/fullchain.pem |
| 12 | SSLCertificateKeyFile /etc/letsencrypt/live/chat.example.ru/privkey.pem |
| 13 | |
| 14 | ProxyPass /_matrix http://127.0.0.1:8008/_matrix nocanon |
| 15 | ProxyPassReverse /_matrix http://127.0.0.1:8008/_matrix |
| 16 | ProxyPass /_synapse http://127.0.0.1:8008/_synapse nocanon |
| 17 | ProxyPassReverse /_synapse http://127.0.0.1:8008/_synapse |
| 18 | |
| 19 | <Directory /var/www/element> |
| 20 | Options Indexes FollowSymLinks |
| 21 | AllowOverride All |
| 22 | Require all granted |
| 23 | </Directory> |
| 24 | </VirtualHost> |
Теперь необходимо установить файрволл и настроить его:
sudo apt install -y ufw
sudo ufw allow ssh
sudo ufw allow 80/tcp
sudo ufw allow 80/udp
sudo ufw allow 443/tcp
sudo ufw allow 443/udp
sudo ufw allow 3478
sudo ufw allow 5349
sudo ufw enable
Переходим к активации и запуску:
Запускаем конфиг Apache:
sudo a2ensite chat.example.ru.conf
Запускаем Coturn:
sudo systemctl enable --now coturn
Перезапускаем веб сервер для применения изменений:
sudo systemctl restart apache2
Зайдите в конфиг Synapse и поставьте ключ для регистрации пользователей:
nano /etc/matrix-synapse/homeserver.yml
Необходимо добавить строку к примеру после строки log_config:
registration_shared_secret: "ВАШ_КЛЮЧ_2"
Перезапускаем Matrix-Synapse:
sudo systemctl restart matrix-synapse
Создание новых пользователей происходит командой:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://127.0.0.1:8008 -u ваш-логин -p ваш-пароль
При ее использовании будет выведен выбор выдать права администратора или нет пишите yes либо no.