Клиент, хост и сообщество
Клиент работает в браузере; настольная оболочка использует Tauri. API построен на Node.js/TypeScript, данные хоста хранятся в PostgreSQL. Файлы обслуживаются S3-совместимым хранилищем, медиа — LiveKit при соответствующей конфигурации.
Хост управляет учётными записями и своей инфраструктурой. Guild — сообщество с ролями и каналами внутри хоста. Один хост может обслуживать несколько сообществ.
Федерация
Независимые хосты обмениваются подписанными запросами. Адреса имеют вид @username#hostname; используются ключи Ed25519 и защита от повторов. Sibrel использует собственный протокол, без прямой совместимости с Matrix.
- Межхостовые группы имеют домашний хост; изменения состава и синхронизация зависят от его доступности.
- Резервная ретрансляция сообщений включается после неудачной прямой доставки. Она не переносит аудио/видео и не гарантирует доставку полностью отключённому хосту.
- Ретрансляция ограничивается заданной оператором долей исходящей полосы, а не автоматически измеренным ресурсом.
- Подпись подтверждает источник запроса; она не шифрует содержимое сообщения.
Разделение инфраструктуры
Для файлов доступны локальный MinIO и внешнее S3-хранилище, для медиа — локальный или отдельный LiveKit. В проекте предусмотрены дополнительные узлы хранения и медиа. Комната закрепляется за одним медиаузлом.
Автоматизация
Бот — отдельная учётная запись с ограниченными правами на каждом сообществе. Доступны REST API, WebSocket Gateway, слеш-команды, кнопки, embeds и голос. Для простых входящих уведомлений предусмотрены вебхуки.
Границы защиты
Новые вложения основного редактора шифруются клиентом с помощью AES-256-GCM; ключи файла оборачиваются для ключей получателей. Старые вложения, аватары, публичные публикации, эмодзи и стикеры имеют другую модель доступа.
Текстовые сообщения не следует считать сквозно зашифрованными. Шифрование файлов не защищает от вредоносного клиента, компрометации устройства или сохранения файла получателем. Подробная модель — в справке по безопасности.
Что выигрывает и за что отвечает оператор
| Преимущество | Цена и ограничение |
|---|---|
| Контроль хоста и возможность вынести сервисы. | Администрирование, обновления, резервные копии и мониторинг остаются за оператором. |
| Федерация независимых узлов. | Нужны доверие к операторам, совместимость и доступные сетевые маршруты. |
| Tauri-клиент без отдельного Electron-движка. | Универсальных замеров RAM и скорости для всех устройств нет. |
| Свой Bot API и интеграции. | Код бота должен обрабатывать ошибки, отзыв токенов, разрывы соединения и изменения API. |
| Настраиваемые права и правила. | Self-hosted не освобождает от закона и обязанностей по персональным данным. |