Calab · открытый код · на вашем сервере

Голос, чат и стрим экрана для вашей команды

Корпоративный мессенджер, который живёт на вашем сервере: голосовые комнаты, чат как в Telegram, показ экрана. Один docker compose up, никаких внешних сервисов и подписок. Написан нейросетью от первой строки.

  • Код открыт на GitHub
  • macOS · Windows · Linux · Web
  • Написан нейросетью
Calab: голосовая комната с участниками и стримом, рядом чат команды

Так выглядит Calab — приложение и веб-версия из одного кода

Голос

Зашёл в комнату — сразу слышишь коллег

Комнаты как в Discord: участники и говорящие видны прямо в списке, вход одним кликом, таймер разговора. Никаких «создать встречу» и ссылок на час.

  • Push-to-talk или активация голосомЛюбая клавиша, включая Caps Lock и боковые кнопки мыши; порог и гистерезис настраиваются.
  • Чистый звук без внешних сервисовЭхоподавление AEC3 и шумоподавление RNNoise работают на устройстве.
  • Модерация в один кликСерверный mute, перенос участников между комнатами drag&drop, остановка чужого стрима.
0,1 кбит/с
трафик в тишине
30–45 кбит/с
на речи
20–30
человек в голосе
Онбординг Calab: выбор между активацией голосом и push-to-talk
Стрим экрана

Показал экран — текст остаётся резким

Пикер как в Discord: приложения и экраны с превью, пресеты «Экономия · 720p · 1080p · Оригинал», режим «Текст / Видео», системный звук там, где ОС позволяет.

  • AV1 + simulcastЗритель получает только тот слой, который реально видит; слой, который никто не смотрит, не кодируется.
  • До трёх стримов в комнатеПлитка в углу чата, развёрнутый режим, отдельное окно на второй монитор, счётчик «N смотрят».
  • Веб-камераСетка плиток или окошко поверх чата, закрепить крупно по клику, лимит камер на комнату.
AV1
кодек с simulcast
20–300 кбит/с
код или документ
3
стрима в комнате
Стрим экрана в голосовой комнате Calab: развёрнутый экран участника и список зрителей
Чат и личные сообщения

Чат, к которому не надо привыкать

Пузыри как в Telegram: ответы с цитатой, реакции, упоминания, закреплённые сообщения, галочки доставки. Файлы — drag&drop или из буфера, превью ссылок и изображений.

  • Поиск с морфологиейПо комнате и по всему пространству, быстрый переход ⌘K по комнатам, участникам и сообщениям.
  • Личные сообщенияОтдельный раздел со счётчиком непрочитанных, та же лента, что в комнатах: файлы, реакции, закрепы.
  • Мобильная версияВеб-клиент в одну колонку: комнаты в шторке, голос и push-to-talk внизу экрана, ставится на главный экран телефона.
@упоминанияреакциизакрепыпревью ссылокпоискуведомления по комнатам
Личные сообщения в Calab: список переписок и диалог с вложениями и реакциями
Под капотом

Сделан для команд, у которых есть админ, а не отдел DevOps

Всё нужное — в одном docker compose: Caddy, LiveKit, Go-API, PostgreSQL и Valkey. Никаких внешних сервисов.

Пространства и права

Роли owner / admin / member / guest и 14 битов прав с переопределением на каждую комнату: писать, файлы, говорить, стримить, модерировать.

Гости по ссылке

Человек вводит имя и оказывается в разговоре без регистрации, видит только эту комнату. Админ может сделать гостя участником.

Работает за файрволом

UDP → TCP → TURN/TLS на 443 автоматически. Один публичный IP, проверено из-за VPN и корпоративных прокси.

Безопасность по умолчанию

Медиа — DTLS-SRTP, API — HTTPS/WSS, HSTS и строгая CSP, argon2id, ротация refresh-токенов, rate-limit на вход и загрузки.

Переподключение без потерь

Gateway с последовательностью событий и RESUME: восстановление после сна ноутбука и обрыва сети, отправка с идемпотентностью.

Эксплуатация

Харднинг контейнеров, сертификаты Let's Encrypt, ежедневные бэкапы с проверенным восстановлением, метрики Prometheus, автообновление клиентов с вашего сервера.

Написан нейросетью

Issue на GitHub закрывает нейросеть. Человек только одобряет

Calab написан моделями от первой строки: архитектура, код, тесты, документация и changelog. Тот же конвейер обслуживает задачи от пользователей: единственная ручная кнопка — одобрение, чтобы никто не заставил нейросеть навредить проекту.

GitHub Issues
План выполнения

Причина: Caps Lock читается через раскладку, а не как физическая клавиша

Правка: apps/desktop → hotkeys, чтение кода клавиши напрямую

Проверки: typecheck, unit, e2e:visual -g settings на трёх раскладках

Риск: низкий, затрагивает только macOS

Одобрить выполнение
Проверьте план перед запуском агента
Одобрить и запустить
Pull request #8 · fix/ptt-capslock-layouts

✓ typecheck · lint · unit

✓ e2e:visual -g settings — 3 из 3

✓ CI: buf lint, go vet, drift-check генерации

→ Calab 0.3.1 · changelog обновлён, сборки собраны

Нейросеть отвечает в самой issue: причина, план, оценка.

План привязан к документации проекта, а не к догадкам.

Без одобрения агент не трогает код.

Так в первый день вышли пять версий Calab.

Доработка под бизнес

Нужна функция для вашей команды: у вендора и в Calab

Облачный мессенджерзакрытый код
Запрос

Письмо в поддержку

Оценка

Квартал в бэклоге вендора

Разработка

Если совпало с их планами

Проверка

Ждёте релиза для всех

Итог

Может быть, через год

Calabоткрытый код + нейросеть
Запрос

Issue на GitHub

Оценка

План от нейросети за минуты

Разработка

Человек одобрил — агент пишет

Проверка

Тесты и ревью в CI

Итог

PR и релиз — дни, а не кварталы

Доработки под ваши процессы — SSO, интеграции, брендинг, своя инфраструктура — делаем по коммерческой лицензии GPTunneL.

Сравнение

Calab против облачных мессенджеров

CalabDiscord, Slack, Zoomоблачные
Где лежат данныеНа вашем сервереВ облаке вендора
ПодпискиНет: свой сервер, лицензия по запросуПомесячно, обычно за пользователя
Исходный кодОткрыт на GitHubЗакрыт
Доработки под васIssue → нейросеть → PRТолько из планов вендора
Голос и стримКомнаты, push-to-talk, AV1-стримЕсть
Закрытый контурДа, один публичный IPНет
ГостиПо ссылке, без регистрацииЗависит от сервиса

Некоммерческое использование Calab бесплатно, коммерческое — по лицензии GPTunneL.

Свой сервер

Три команды до рабочего мессенджера

Нужны Linux-хост с публичным IP, Docker с Compose и домен с A-записями app, rtc и turn.

git clone https://github.com/itrcz/calab.git && cd calab
Шаг 1

Клонируйте репозиторий

cp infra/docker/.env.example infra/docker/.env
Шаг 2

Заполните домен и секреты

Все переменные описаны в комментариях к файлу.

infra/docker/deploy.sh
Шаг 3

Поднимите стек

Caddy, LiveKit, API, PostgreSQL и Valkey. Сертификаты Let's Encrypt выпускаются сами.

Порты: 80/443 TCP, 443 UDP, 7881 TCP, 7882 UDP. Первый зарегистрированный пользователь становится владельцем сервера, дальше — по инвайтам. Сборки для macOS, Windows и Linux раздаются с вашего же сервера по адресу app.<домен>/download.

Инструкция по деплою
Для бизнеса

Дорабатываем под ваши процессы

Открытый код плюс конвейер с нейросетью означают, что «под вас» — это не квартал разработки, а согласованный план и несколько дней.

Свой контур

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

Интеграции

SSO и OIDC, боты и вебхуки, связка с вашими CRM, трекерами и базами знаний.

Брендинг

Имя, логотип, домен и свои сборки приложения под вашей маркой.

Сопровождение

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

FAQ

Вопросы про Calab

Да, от первой строки: архитектура, Go-сервер, Electron-клиент, тесты, документация и changelog. Человек ставит задачи, принимает архитектурные решения и одобряет выполнение. Каждое решение зафиксировано как ADR в репозитории, там же — история версий.
Заявка

Нужен Calab под вашу команду?

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

Что интересует?

Поднимите свой мессенджер за вечер

Код открыт, сервер ставится одной командой, а доработки делает нейросеть под присмотром человека.

  • Голос, чат и стрим экрана на вашем сервере
  • Бесплатно для личного и некоммерческого использования
  • Issue на GitHub вместо тикетов вендору