Rocket.Chat
Корпоративный мессенджер с открытым кодом, который разворачивается на своём сервере — self-hosted альтернатива Slack и Microsoft Teams.
Что такое Rocket.Chat
Rocket.Chat — платформа для командного общения с открытым исходным кодом. Каналы, личные сообщения, треды, файлы, звонки, боты — примерно то же, что в Slack, но с одним принципиальным отличием: сервер вы разворачиваете сами, и переписка компании остаётся на вашем железе.
В русскоязычной среде говорят «рокет» или «рокет чат». Это один из самых частых ответов на задачу «нужен корпоративный мессенджер, но данные не должны уходить в чужое облако» — для компаний, где такая переписка попадает под требования к конфиденциальности или содержит персональные данные.
Что умеет
- Каналы, группы, треды, обсуждения — стандартный набор командного чата.
- Omnichannel (LiveChat) — виджет поддержки на сайт, плюс подтягивание обращений из мессенджеров в те же каналы. Этого в Slack нет, и ради этого Rocket.Chat часто и берут.
- Интеграции — входящие и исходящие вебхуки, боты, слэш-команды, marketplace приложений, полноценный REST API.
- Звонки и конференции — через интеграцию с Jitsi Meet или встроенные средства.
- SSO — OAuth, SAML, LDAP/AD; типовая связка — с Keycloak.
- E2E-шифрование — опционально, включается на уровне канала.
- Клиенты — веб, десктоп, iOS и Android.
Есть бесплатная Community-редакция с открытым кодом и коммерческая Enterprise с дополнительными возможностями и поддержкой. Для внутреннего мессенджера команды обычно хватает первой.
Rocket.Chat vs Mattermost vs Slack
| Rocket.Chat | Mattermost | Slack | |
|---|---|---|---|
| Где работает | свой сервер | свой сервер | SaaS |
| Стек | Node.js + MongoDB | Go + PostgreSQL | закрытый |
| Аппетит к ресурсам | заметный | скромный | не ваша забота |
| Omnichannel/поддержка | есть | нет | через приложения |
| Экосистема приложений | средняя | средняя | самая большая |
| История сообщений | без лимитов | без лимитов | ограничена тарифом |
Два главных self-hosted-конкурента различаются в основном стеком и характером. Mattermost на Go — легче и предсказуемее по ресурсам, ближе к DevOps-командам. Rocket.Chat богаче функционально, особенно если нужен внешний саппорт-чат, но платит за это прожорливостью Node.js и MongoDB.
Развёртывание и MongoDB
Rocket.Chat написан на JavaScript (Node.js, фреймворк Meteor), а данные держит в MongoDB. Ставится Docker Compose-стеком, приложение слушает порт 3000, наружу его выставляют через Nginx или Traefik с SSL-сертификатом.
Главная особенность установки, на которой спотыкаются все: MongoDB обязана быть запущена как replica set, даже если узел один. Не «желательно», а иначе Rocket.Chat не стартует. Причина — Meteor отслеживает изменения через oplog, а oplog существует только в режиме репликации. Инициализация выглядит так:
mongosh --eval "rs.initiate({
_id: 'rs0',
members: [{ _id: 0, host: 'mongodb:27017' }]
})"
Это не полноценная репликация с резервным узлом — это одиночный «кластер» из одного члена, нужный ради oplog. Отказоустойчивость строится отдельно.
Обратная сторона oplog — реальный realtime: сообщения долетают через WebSocket без опроса сервера.
Что нужно от сервера
Rocket.Chat заметно тяжелее, чем ожидают от «чатика». Ориентиры для небольшой команды: VPS на 2 vCPU и 4 ГБ RAM под связку приложение + MongoDB — это рабочий минимум, а не запас. Память съедают Node.js и Mongo примерно поровну.
На что обратить внимание при эксплуатации:
- Диск. База растёт от истории и вложений. Файлы лучше сразу увести в объектное хранилище — S3-совместимое, например MinIO, — а не хранить в GridFS внутри Mongo.
- Бэкап.Резервное копирование MongoDB нужно настроить до запуска в эксплуатацию. Мессенджер — это переписка, которую нельзя пересоздать.
- Обновления. Прыгать через мажорные версии не стоит: миграции базы идут последовательно.
Связанные термины
- MongoDB — база, без replica set Rocket.Chat не запустится
- Jitsi Meet — чем добавляют видеозвонки
- Keycloak — типовой источник SSO для корпоративной установки
- Webhook — как в каналы приходят уведомления из CI и мониторинга
- WebSocket — транспорт, за счёт которого чат работает в реальном времени
- Резервное копирование — обязательная часть эксплуатации
Готовы запустить GPU-задачу?
Запустить GPU-сервер