Мессенджер Revolt

После блокировки Discord в РФ люди начали искать варианты решения проблемы. Легально это можно сделать двумя способами:

  1. Перейти на альтернативный мессенджер с централизованным управлением от сторонней компании (TeamSpeak, Skype и др.). Правда, некоторые аналоги Discord уже упали под нагрузкой и вынуждены ограничить доступ пользователям из РФ, как Guilded.
  2. Поднять собственный сервер.

Второй вариант кажется наиболее надёжным с учётом будущих блокировок. Ведь любой мессенджер из первого пункта может сам упасть или отказать в доступе с территории РФ, или его тоже внесут в чёрный список.

В итоге остаётся только свой сервер. Желательно в локальной сети или хотя бы на виртуальном хостинге.

▍ Готовый сервер Matrix Synapse


Например, в маркетплейсе RUVDS есть готовый шаблон сервера Matrix Synapse, который можно использовать для групповых коммуникаций.



Этот шаблон поставляется с операционной системой Debian 11, где всё необходимое уже установлено, сконфигурировано и готово к работе.

Matrix Synapse — открытый, современный, мощный протокол для организации защищённых систем связи реального времени. Представляет собой набор API (JSON over REST). Даёт возможность обмениваться мгновенными сообщениями (IM), поддерживает передачу файлов, голосовую (Voice over IP (VoIP)) и видеосвязь, может обеспечивать коммуникацию Интернета вещей (IoT). Помимо передачи данных между клиентом и сервером, также описывает способ организации связи между серверами за счёт механизма «федерации», обеспечивая возможность общаться пользователям, клиенты которых подключены к разным серверам.

Synapse — сервер с открытым исходным кодом, реализующий протокол Matrix. Разрабатывается Matrix.org Foundation с 2014 года. Активно совершенствуется в данный момент, как и вышеописанный протокол.

Кроме Synapse, для удобства после инициализации в данном образе будут доступны:

  • Synapse Admin UI — небольшая открытая утилита с веб-интерфейсом для администрирования.
  • Element Web — веб-версия клиента, также с открытым исходным кодом.


Веб-версия Element

Мессенджер Element выпускается для разных операционных систем и мобильных устройств, включая iOS и Android. Кроме того, в Матрице большой выбор других клиентов:



Ранее мы публиковали ссылку на технологическое сравнение всех протоколов коммуникации по ряду критериев, включая безопасность, совместимость, функциональность и надёжность. Как легко увидеть, связка Element/Matrix выигрывает практически по всем показателям.



По уровню безопасности к Element/Matrix ближе всего другие опенсорсные системы, которые поддерживают сквозное шифрование, такие как XMPP, NextCloud Talk, Wire и проч.

Внизу списка — проприетарные системы Discord, Slack, Skype, Zoom, Hangouts и тому подобные, где нормальное шифрование отсутствует, а исходный код засекречен.



Если связка Matrix/Element не устраивает, то никто не мешает выбрать из большого списка других альтернатив Discord.

▍ Другие альтернативы Discord


Вышеупомянутая таблица всех протоколов коммуникации содержит практически все возможные варианты замены Discord.

В комментариях на Хабре в качестве альтернативы часто упоминали Guilded, который является полным аналогом Discord в Roblox. Для работы в этом мессенджере нужен только аккаунт Roblox.



К сожалению, 11 октября 2024 года платформа Guilded закрыла доступ к своим ресурсам для пользователей РФ.



Из других популярных альтернатив/аналогов Discord можно упомянуть следующие:

  1. TeamSpeak 3 — управление своим сервером через Server Admin Token.
  2. Мессенджер с поддержкой голосовой связи Mumble с открытым исходным кодом. Отличается хорошим качеcтвом связи и низкой задержкой.
  3. Tox — защищённый мессенджер с распределённой системой узлов (без центральных серверов) и шифрованием.

    Поддержка ОС разными клиентами Tox:



  4. Volt.imпотенциально опенсорсная альтернатива Discord, которую также называют гибридом Discord и Telegram. Десктопный клиент размером 300 КБ будет работать со Slack, Skype, Twitter, Telegram и другими сервисами. Разработка экспериментального клиента началась недавно, пока вышла только версия под MacOS.


    Volt.im

  5. Mattermost — известная альтернатива Slack и Discord, можно установить на своём хостинге.
  6. Rocket.chat — опенсорсная полностью настраиваемая платформа для коммуникаций, разработанная на JavaScript. Позиционируется в том числе для бизнес-пользователей с высокими стандартами для защиты данных и шифрования.


    Rocket.chat

  7. Aliucord — модификация клиента Discord для Android.

  8. Jitsi — коллекция бесплатных и открытых мультиплатформенных приложений для голосовой связи (VoIP), видеоконференций и обмена мгновенными сообщениями. Есть версия для веба, Windows, Linux, macOS, iOS и Android.

▍ Revolt


Один из самых интересных мессенджеров, которые появились в последнее время как альтернатива Discord — это опенсорсный проект Revolt (исходный код).



Установка на своём сервере требует наличия Git и Docker.

Этапы установки в локальной сети:

  1. Клонировать репозиторий.

    git clone https://github.com/revoltchat/self-hosted revolt
    cd revolt


  2. Скопировать файл .env с настройками окружения, а также скачать Revolt.toml и отредактировать оба файла под свои нужды.

    cp .env.example .env
    wget -O Revolt.toml https://raw.githubusercontent.com/revoltchat/backend/main/crates/core/config/Revolt.toml

  3. Запустить Revolt в докере.

    docker compose up

С настройками по умолчанию наша локальная копия мессенджера должна открыться в браузере по адресу local.revolt.chat. См. пример файла .env.

Установка на удалённом сервере включает в себя дополнительные манипуляции. В частности, нужно отредактировать адреса URL в файлах .env и Revolt.toml.

Во-первых, все упоминания local.revolt.chat требуется заменить на свой домен:

# .env
- REVOLT_APP_URL=http://local.revolt.chat
+ REVOLT_APP_URL=http://my.domain

# Revolt.toml
- app = "http://local.revolt.chat"
+ app = "http://my.domain"

Во-вторых, включить HTTPS:

# .env
- REVOLT_APP_URL=http://my.domain
+ REVOLT_APP_URL=https://my.domain

- REVOLT_EXTERNAL_WS_URL=ws://my.domain/ws
+ REVOLT_EXTERNAL_WS_URL=wss://my.domain/ws

# Revolt.toml
- app = "http://local.revolt.chat"
+ app = "https://my.domain"

- events = "ws://my.domain/ws"
+ events = "wss://my.domain/ws"

Чтобы регистрация была доступна только по приглашениям, достаточно изменить две переменных в файлах настройки: установить REVOLT_INVITE_ONLY из файла .env в значение 1, а значение invite_only из файла Revolt.toml в значение true.

В качестве базы данных мессенджер использует MongoDB. Создание инвайта:

# drop into mongo shell
docker compose exec database mongosh

# create the invite
use revolt
db.invites.insertOne({ _id: "enter_an_invite_code_here" })

Revolt — интересный мессенджер, который начинался как хобби-проект одного разработчика в образовательных целях, а сейчас оброс нормальным комьюнити и бурно развивается. Недавно вышли экспериментальные клиенты под Android и iOS, десктопный клиент GTK4 и клиент на React Native.


Клиент под iOS


Клиент под Android

Конечно, Revolt пока находится в ранней стадии разработки. Но это очень интересный пример того, что может сделать один человек. Бэкенд написан на Rust, интерфейс полностью скопирован с Discord — тоже две немаловажные части успеха. Будем надеяться, что сообщество перехватит знамя у автора/мейнтейнера — и проект станет действительно общественным. Опенсорсный мессенджер с богатой функциональностью нужен всем.

▍ Итоги


Подводя итог, в опенсорсе немало альтернатив Discord, которые можно поставить на своём сервере. Многие из них известны нам ещё по тем временам, когда мы искали замену Slack и Mattermost. История повторяется.

Среди новых разработок за последние годы выделяется опенсорсный проект Revolt, который также называют полным клоном Discord, потому что пытается копировать его дизайн, элементы интерфейса и функциональность. Проект изначально создан с нуля единственным разработчиком ради удовольствия, а сейчас активно развивается силами сообщества.

© 2024 ООО «МТ ФИНАНС»

Telegram-канал со скидками, розыгрышами призов и новостями IT ?

Комментарии (2)


  1. vsce
    15.10.2024 12:15

    Compass забыли, тем открыт онпрем


  1. Kerrigan
    15.10.2024 12:15

    Хочу отметить, что Mumble существует веб-интерфейс, в котором работает голосовая связь