# Central Hub — опциональный координационный сервер ## Мотивация VNOX спроектирован как self-hosted платформа: каждый сам поднимает свой нод. Но для adoption нужна точка входа для тех, у кого нет своего сервера, и механизм обнаружения публичных нодов. Central Hub — опциональный сервер, который **не заменяет** собственный нод и **не хостит** голос/чат. Он только координирует. ## Что делает Central Hub ### 1. Discovery / Registry — реестр публичных нодов Владельцы нодов могут опубликовать свой сервер в реестре: - адрес, название, описание, регион - теги (`gaming`, `dev`, `ru`, `cs2`, ...) - мета: онлайне, кол-во пользователей Клиент может найти сервер по тегам/названию и подключиться. Без Central Hub — только прямой ввод адреса или закладки. ### 2. Global identity bridge — аккаунт без своего нода Пользователь регистрирует ключ на Central Hub: - `user@hub` — глобальный идентификатор - никнейм, аватар (опционально) - привязка к одному или нескольким "гостевым" нодам Позволяет зайти в VNOX без поднятия собственной инфраструктуры. При этом Central Hub не хранит сообщения, не релеит голос, не управляет каналами. ### 3. Push notification relay — поддержка мобильных Мобильные клиенты не могут держать постоянное TCP/UDP соединение. Central Hub принимает пуш-уведомления от нодов: - входящее DM - упоминание в чате - звонок в войс Без этого мобильный клиент будет получать сообщения только с задержками. ### 4. User directory / friend graph — глобальная социальная сеть Список друзей и поиск пользователей не привязан к одному ноду: - `@user` ищется по Central Hub - запрос в друзья через хаб, а не через конкретный сервер - cross-node DM: хаб знает, на каком ноде сейчас пользователь ## Границы (чего Central Hub НЕ делает) - ❌ Не хостит голосовые каналы - ❌ Не хостит текстовые каналы - ❌ Не хранит историю сообщений - ❌ Не управляет сессиями — только направляет - ❌ Не заменяет self-hosted нод — только дополняет Hub — это телефонная книга и коммутатор, а не сам телефон. ## Деплой Central Hub — отдельный бинарник (например, `vnox-hub`). Работает на HTTP(S) / WebSocket, минимальные требования. Может быть поднят кем угодно, не обязательно авторами VNOX.