Pull to refresh

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

Level of difficultyMedium

Что такое 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 уже около месяца, и голосовая связь работает безупречно.

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

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.