- PVSM.RU - https://www.pvsm.ru -

Опенсорсные альтернативы Discord на своём сервере

Опенсорсные альтернативы Discord на своём сервере - 1 [1]Мессенджер Revolt [2]

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

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

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

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

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

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

Опенсорсные альтернативы Discord на своём сервере - 2

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

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

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

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

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

Опенсорсные альтернативы Discord на своём сервере - 3
Веб-версия Element

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

Опенсорсные альтернативы Discord на своём сервере - 4

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

Опенсорсные альтернативы Discord на своём сервере - 5

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

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

Опенсорсные альтернативы Discord на своём сервере - 6

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

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

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

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

Опенсорсные альтернативы Discord на своём сервере - 7

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

Опенсорсные альтернативы Discord на своём сервере - 8

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

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

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

    Опенсорсные альтернативы Discord на своём сервере - 9

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

    Опенсорсные альтернативы Discord на своём сервере - 10
    Volt.im

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

    Опенсорсные альтернативы Discord на своём сервере - 11
    Rocket.chat

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

▍ Revolt

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

Опенсорсные альтернативы Discord на своём сервере - 12

Установка на своём сервере [25] требует наличия 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 [26]. См. пример файла .env [27].

Установка на удалённом сервере [28] включает в себя дополнительные манипуляции. В частности, нужно отредактировать адреса 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 — интересный мессенджер, который начинался как хобби-проект [29] одного разработчика в образовательных целях, а сейчас оброс нормальным комьюнити и бурно развивается. Недавно вышли экспериментальные клиенты под Android [30] и iOS [31], десктопный клиент GTK4 [32] и клиент на React Native [33].

Опенсорсные альтернативы Discord на своём сервере - 13
Клиент под iOS

Опенсорсные альтернативы Discord на своём сервере - 14
Клиент под Android

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

▍ Итоги

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

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

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

Автор: ru_vds

Источник [34]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/skype/399568

Ссылки в тексте:

[1] Image: https://habr.com/ru/companies/ruvds/articles/850438/

[2] Revolt: https://revolt.chat/

[3] Guilded: https://www.guilded.gg/

[4] хостинге: https://www.reg.ru/?rlink=reflink-717

[5] маркетплейсе RUVDS: https://ruvds.com/ru/mp/

[6] Matrix Synapse: https://ruvds.com/ru/mp/matrix/

[7] набор API: https://spec.matrix.org/latest/

[8] Synapse Admin UI: https://github.com/Awesome-Technologies/synapse-admin

[9] Element Web: https://github.com/element-hq/element-web

[10] большой выбор других клиентов: https://matrix.org/ecosystem/clients/

[11] публиковали: https://habr.com/ru/companies/ruvds/articles/702494/

[12] технологическое сравнение всех протоколов коммуникации: https://docs.google.com/spreadsheets/d/1-UlA4-tslROBDS9IqHalWVztqZo7uxlCeKPQ-8uoFOU/edit#gid=0

[13] закрыла доступ: https://habr.com/ru/news/850110/

[14] следующие: https://habr.com/ru/news/849148/

[15] TeamSpeak 3: https://teamspeak.com/en/downloads/#server

[16] Mumble: https://www.mumble.info/downloads/

[17] Tox: https://tox.chat/

[18] Volt.im: https://volt.im/

[19] потенциально опенсорсная: https://volt-app.com/

[20] Mattermost: https://mattermost.com/

[21] Rocket.chat: https://www.rocket.chat/

[22] Aliucord: https://github.com/Aliucord/Aliucord

[23] Jitsi: https://jitsi.org/

[24] исходный код: https://github.com/revoltchat

[25] Установка на своём сервере: https://github.com/revoltchat/self-hosted

[26] local.revolt.chat: http://local.revolt.chat/

[27] пример файла .env: https://github.com/revoltchat/self-hosted/blob/master/.env.example

[28] Установка на удалённом сервере: https://github.com/revoltchat/self-hosted#custom-domain

[29] начинался как хобби-проект: https://developers.revolt.chat/faq.html#:~:text=Revolt%20started%20as%20a%20passion%20project

[30] под Android: https://github.com/revoltchat/android

[31] iOS: https://github.com/revoltchat/ios

[32] клиент GTK4: https://github.com/revoltchat/mutiny

[33] клиент на React Native: https://github.com/revoltchat/rvmob

[34] Источник: https://habr.com/ru/companies/ruvds/articles/850438/?utm_campaign=850438&utm_source=habrahabr&utm_medium=rss