Northwind Vox
Для администраторов

Свой сервер Vox

Поднимите узел для друзей, команды или сообщества. Клиенты подключаются к нему по одной ссылке, а переписка и звонки идут через ваше железо.

СкороСборка сервера для всех — Docker и скрипт — ещё готовится. Ниже — как это будет устроено.
Состав

Что входит в сервер

Обязателен

Сигнальный сервер

Подключает клиентов, помогает им найти друг друга, хранит сообщения больших групп 7 дней.

9741/TCP
Обязателен

TURN (coturn)

Пересылает звонки, файлы и личные сообщения. Канал зашифрован между собеседниками, сервер его не расшифровывает.

3478 + диапазон UDP
По желанию

SFU

Пересылает звук голосовых каналов от 4 участников, чтобы никто не слал поток каждому. Клиенты включают его в настройках.

9760/TCP
Требования

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

Система
Linux x64 с Docker. Для скрипта без Docker — Debian или Ubuntu
Сеть
Публичный IPv4, открытые порты из таблицы
Ресурсы
1 ядро и 1 ГБ памяти — примерно на 400 клиентов
Трафик
Звонки и файлы идут через TURN, звук каналов с SFU — через SFU. Ширина канала важнее процессора
Порты

Что открыть

9741TCPКлиенты Vox (WebSocket)
3478UDP и TCPTURN
49152–65535UDPДиапазон пересылки TURN, настраивается
9760TCPSFU (WebSocket), если включён
Подключение

Как пустить на сервер своих

  1. 1

    Запустите сервер

    docker compose up -d на Linux-машине с публичным IP. Или скрипт из архива, если Docker не нужен.

  2. 2

    Скопируйте ссылку

    Команда link выведет ссылку vox://server/… — в ней адрес и ключ сервера.

  3. 3

    Отправьте её своим

    Ссылка открывает Vox и предлагает добавить сервер. Или вставьте её в Настройки → Сеть.

Загрузка

Скачать сервер

Сервер выходит вместе с приложением. Клиенты обновляются сами — обновляйте сервер вслед за ними.

Linux x64

По умолчанию — Docker: compose-файл поднимает signal, SFU и coturn. Без Docker — архив со скриптом для Debian и Ubuntu: поставит coturn, настроит ufw и systemd. Секреты генерируются при установке и никуда не отправляются.

Пока недоступно
Вопросы

Частые вопросы

Смогут ли пользователи моего сервера писать пользователям других серверов?

Да — серверы разных владельцев связываются между собой, и собеседникам не нужно сидеть на одном сервере. [В разработке: сейчас связаны только узлы одного кластера.]

Сколько клиентов выдержит один сервер?

По умолчанию узел рассчитан на 400 клиентов (CLUSTER_SOFT_LIMIT) при 1 ядре и 1 ГБ памяти. В кластере лишних клиентов он направит на соседний узел.

Что хранится на сервере?

Сообщения групп, которые идут через сервер (от 50 участников), — 7 дней, срок задаёт GROUP_RETENTION. Сервер видит их текст. Личные сообщения и звонки он не хранит. Ещё на диске — ключ сервера и пароли TURN и SFU в ./data: без ключа клиенты не узнают сервер, храните резервную копию.

Как обновлять сервер?

Сервер выходит вместе с приложением, а клиенты обновляются сами, поэтому обновляйте сервер сразу: docker compose pull && docker compose up -d. Со скриптом — повторный запуск установщика новой версии.

Можно ли объединить несколько серверов?

Да, в кластер до 8 узлов: на каждом в CLUSTER_PEERS перечисляются адреса и ключи соседей. Узлы доверяют друг другу, поэтому кластер собирают только из своих серверов.