Как стать автором
Обновить

Включаем голосовую связь в Revolt (аналог Discord)

Уровень сложностиСредний

Что такое Revolt?

Если ты читаешь эту статью, то, скорее всего, ты уже знаешь, что такое Revolt, но вкратце: это аналог Discord без видеосвязи и демонстрации экрана.

Почему не Matrix/Synapse?

Мне он не понравился, вот и все...

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

Реализация каналов (комнат) непонятная, он больше подходит для организаций как по мне.

Какие проблемы мне пришлось преодолеть?

Чтобы запустить все сервисы Revolt, включая голосовой, мне пришлось столкнуться с некоторыми трудностями из-за отсутствия достаточной документации.

Особенно сложным оказался голосовой сервер Vortex. В файле docker-compose, который можно найти в репозитории Revolt self-hosted, отсутствует упоминание о голосовом сервере (Vortex).

Если вы просто запустите Revolt self-hosted, то не сможете совершать звонки, так как не настроили голосовой сервер Vortex.

В репозитории самого Vortex также нет чёткой инструкции по настройке. Кроме того, сборка проекта завершается с ошибкой. Автор проекта сообщил, что работает над переписыванием голосового сервера, но пока у него нет свободного времени.

Однако я решил, что можно откатиться на один из старых коммитов, и в итоге мне удалось собрать проект.

Кроме того, в конфигурации Caddy (reverse proxy сервера) была обнаружена ошибка, связанная с портом контейнера autumn (файлового сервера). Из-за этой ошибки не работала отправка изображений, аватарок и других файлов. По итогу я отказался от него в пользу Nginx.

В итоге я принял решение исправить все эти недочёты, добавить голосовой сервер и выложить свои изменения в собственном репозитории.

Что нам понадобится?

Виртуальная машина (VPS) с минимальными системными требованиями:

Начинаем установку

Прежде всего, необходимо клонировать мой репозиторий:

cd /opt && git clone https://github.com/kanewi11/revolt-self-hosted

В данной инструкции сервисы будут разбиты на поддомены:

  • api.

  • january.

  • vortex.

  • ws.

  • _acme-challenge. - для ssl сертификата

Необходимо добавить A записи в вашей административной панели, где вы покупали домен.

Выписываем сертификаты на домен и поддомены (замените example.com на ваш домен):

certbot certonly --manual --preferred-challenges=dns -d example.com -d *.example.com

По инструкции будет необходимо в административной панели, где вы покупали домен, добавить TXT записи для поддомена _acme-challenge.

После каждого шага проверяйте что TXT запись обновилась, это можно сделать при помощи сервиса Google Dig

После того как сертификаты выписаны, скопируйте всё из директории с сертификатами (она будет указана при успешном создании сертификата) в директорию:

cp /etc/letsencrypt/live/ваш домен/* /opt/revolt-self-hosted/data/nginx/certs/

Настройка Revolt

Сначала необходимо создать .env файл.

Переходим в директорию revolt-self-hosted командой:

cd /opt/revolt-self-hosted

Теперь создадим .env файл командой:

cp .env.example .env

В файле меняем домен example.com на свой.Это необходимо сделать с переменными:

  • HOSTNAME

  • REVOLT_APP_URL

  • REVOLT_PUBLIC_URL

  • VITE_API_URL

  • REVOLT_EXTERNAL_WS_URL

  • AUTUMN_PUBLIC_URL

  • JANUARY_PUBLIC_URL

  • WS_URL

  • В переменной RTC_IPS необходимо заменить <ip_address> на ip адрес вашего сервера

Дальше переходим к файлу Revolt.tom, тут тоже необходимо заменить example.com на ваш домен.

Это необходимо сделать с переменными:

  • app

  • api

  • events

  • autumn

  • january

  • voso_legacy

  • voso_legacy_ws

Настройка Nginx

Вам необходимо заменить example.com на свой домен во всех файлах в директории: /opt/revolt-self-hosted/nginx/conf.d/

А так же в /opt/revolt-self-hosted/nginx/nginx.conf

Запуск

Находясь в директории /opt/revolt-self-hosted/ прописываем команду:

docker compose up -d

Итог

На самом деле, в системе гораздо больше настроек, и вам также потребуется изменить все токены, ключи и другие параметры. Однако для первоначального запуска этого вполне достаточно.

Я пользуюсь собственным сервером Revolt уже около месяца, и голосовая связь работает безупречно.

С уверенностью могу рекомендовать эту платформу, если вам нужно подобное решение.

Теги:
Хабы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.