Matrix — это открытый и децентрализованный протокол мгновенного обмена сообщениями, разрабатываемый энтузиастами из
У протокола существует полноценная реализация
Клиент
Чтобы не перечислять все преимущества, выделю некоторые из них, которые склонили меня к использованию этого протокола и мессенджера:
Потому что протокол XMPP переполнен многочисленными
Почему не Signal?
Потому что Signal не поддерживает децентрализацию.
Почему не Telegram?
Потому что исходные коды протокола MTProto, который используется в Telegram, никогда не были опубликованы.
Конечно, Telegram больше любят за его UI/UX — но Element на данный момент почти ничем не уступает Telegram: там есть и мосты, и комнаты, и боты, и даже стикеры — а вот людей относительно мало. К сожалению, проекту в действительности не хватает хорошего пиара.
Как подключиться к Matrix через чужой сервер
Это очень просто — просто используйте
Как подключиться к Matrix через свой сервер
Для этого необходимо настроить свой HomeServer на Synapse — официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.
Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux — основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.
Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.
Шаг 1. Установка сервера Synapse
Подготавливаем нашу рабочую среду к установке сервера Synapse:
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg]
sudo tee /etc/apt/sources.list.d/matrix-org.list
Загружаем непосредственно сам Synapse:
sudo apt update
sudo apt install matrix-synapse-py3
В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.
После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.
На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:
systemctl start matrix-synapse
systemctl enable matrix-synapse
Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:
systemctl status matrix-synapse
ss -plnt
Шаг 2. Настройка сервера Synapse
Используйте текстовый редактор (например, nano или vim) и откройте файл /etc/matrix-synapse/homeserver.yaml для редактирования.
Найдите строку listeners: и приведите секцию в следующий вид:
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
Отключите возможность регистрации новых пользователей на вашем сервере, если сервером будете пользоваться только вы:
enable_registration: false
Сгенерируйте случайную строку и поместите её в раздел registration_shared_secret:
registration_shared_secret: "…"
После сохранения файла с настройками не забудьте перезапустить Synapse:
systemctl restart matrix-synapse
Шаг 3. Настройка Let's Encrypt
Сертификат необходим в том случае, если ваш сервер не находится за Cloudflare или другим подобным сервисом.
Для начала необходимо установить certbot — программу для выпуска сертификатов:
sudo apt install certbot -y
И выпустить сертификат для вашего доменного имени:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.example.com
Готово. Ваш сертификат теперь находится по адресу /etc/letsencrypt/live/matrix.example.com/.
Шаг 4. Настройка Nginx в качестве Reverse Proxy
В этой конфигурации мы будем использовать 80 порт для незащищённого соединения, 443 — для защищённого и 8448 для подключения к федерации Matrix.
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 10M;
}
}
server {
listen 8448 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:
systemctl restart nginx
Шаг 5. Регистрация нового пользователя
Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml
New user localpart [root]: username
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
Готово.
Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером.
Давайте поговорим
Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
, равно как и клиент-серверная часть (
Для просмотра ссылки необходимо нажать
Вход или Регистрация
как сервер и
Для просмотра ссылки необходимо нажать
Вход или Регистрация
как клиент) находятся в открытом доступе — в отличие от Telegram, который в настоящее время в открытом доступе держит только свой клиент, что вызывает немало вопросов по поводу
Для просмотра ссылки необходимо нажать
Вход или Регистрация
использования протокола
Для просмотра ссылки необходимо нажать
Вход или Регистрация
.У протокола существует полноценная реализация
Для просмотра ссылки необходимо нажать
Вход или Регистрация
, которая позволяет бесшовно общаться, организовывать общие комнаты для общения пользователям разных серверов, совершать видео- и аудиозвонки.Клиент
Для просмотра ссылки необходимо нажать
Вход или Регистрация
обладает всеми современными функциями, которые присущи другим популярным мессенджерам (за исключением голосовых сообщений).Чтобы не перечислять все преимущества, выделю некоторые из них, которые склонили меня к использованию этого протокола и мессенджера:
- Децентрализация — возможность поднять свой сервер для подключения к сети Matrix
- Приватность — сквозное шифрование
- Групповые аудио- и видеозвонки для пользователей с разных серверов
- Отличное API для ботов
- Полнофункциональный веб-клиент
- Консольные клиенты
Потому что протокол XMPP переполнен многочисленными
Для просмотра ссылки необходимо нажать
Вход или Регистрация
-ами, которые так и не были никогда не реализованы во многих его клиентах. Например, до сих пор не существует ни одного Jabber-клиента c нормальной синхронизацией истории с сервером.Почему не Signal?
Потому что Signal не поддерживает децентрализацию.
Почему не Telegram?
Потому что исходные коды протокола MTProto, который используется в Telegram, никогда не были опубликованы.
Конечно, Telegram больше любят за его UI/UX — но Element на данный момент почти ничем не уступает Telegram: там есть и мосты, и комнаты, и боты, и даже стикеры — а вот людей относительно мало. К сожалению, проекту в действительности не хватает хорошего пиара.
Как подключиться к Matrix через чужой сервер
Это очень просто — просто используйте
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Element или его
Для просмотра ссылки необходимо нажать
Вход или Регистрация
версию. Регистрация не займёт у вас больше минуты.Как подключиться к Matrix через свой сервер
Для этого необходимо настроить свой HomeServer на Synapse — официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.
Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux — основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.
Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.
Шаг 1. Установка сервера Synapse
Подготавливаем нашу рабочую среду к установке сервера Synapse:
sudo apt install -y lsb-release wget apt-transport-https
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg
Для просмотра ссылки необходимо нажать
Вход или Регистрация
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg]
Для просмотра ссылки необходимо нажать
Вход или Регистрация
$(lsb_release -cs) main" |sudo tee /etc/apt/sources.list.d/matrix-org.list
Загружаем непосредственно сам Synapse:
sudo apt update
sudo apt install matrix-synapse-py3
В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.
После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.
На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:
systemctl start matrix-synapse
systemctl enable matrix-synapse
Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:
systemctl status matrix-synapse
ss -plnt
Шаг 2. Настройка сервера Synapse
Используйте текстовый редактор (например, nano или vim) и откройте файл /etc/matrix-synapse/homeserver.yaml для редактирования.
Найдите строку listeners: и приведите секцию в следующий вид:
listeners:
- port: 8008
tls: false
type: http
x_forwarded: true
bind_addresses: ['127.0.0.1']
resources:
- names: [client, federation]
compress: false
Отключите возможность регистрации новых пользователей на вашем сервере, если сервером будете пользоваться только вы:
enable_registration: false
Сгенерируйте случайную строку и поместите её в раздел registration_shared_secret:
registration_shared_secret: "…"
После сохранения файла с настройками не забудьте перезапустить Synapse:
systemctl restart matrix-synapse
Шаг 3. Настройка Let's Encrypt
Сертификат необходим в том случае, если ваш сервер не находится за Cloudflare или другим подобным сервисом.
Для начала необходимо установить certbot — программу для выпуска сертификатов:
sudo apt install certbot -y
И выпустить сертификат для вашего доменного имени:
certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.example.com
Готово. Ваш сертификат теперь находится по адресу /etc/letsencrypt/live/matrix.example.com/.
Шаг 4. Настройка Nginx в качестве Reverse Proxy
В этой конфигурации мы будем использовать 80 порт для незащищённого соединения, 443 — для защищённого и 8448 для подключения к федерации Matrix.
server {
listen 80;
server_name example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location /_matrix {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
# Nginx by default only allows file uploads up to 1M in size
# Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
client_max_body_size 10M;
}
}
server {
listen 8448 ssl;
server_name example.com;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
location / {
proxy_pass http://localhost:8008;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:
systemctl restart nginx
Шаг 5. Регистрация нового пользователя
Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:
sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml
Для просмотра ссылки необходимо нажать
Вход или Регистрация
New user localpart [root]: username
Password:
Confirm password:
Make admin [no]: yes
Sending registration request...
Success!
Готово.
Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером.
Давайте поговорим
Вместе с моим коллегой по цеху мы организовали чат для пользователей Хабра, чтобы вы могли проверить протокол Matrix в действии.
Для просмотра ссылки необходимо нажать
Вход или Регистрация
Для просмотра ссылки необходимо нажать
Вход или Регистрация