Мессенджер на своём сервере: полный гайд по on-premise решениям

12 марта 2026 · 15 мин чтения

Содержание

  1. Зачем вообще ставить мессенджер к себе
  2. Кому это подходит (и кому нет)
  3. Требования к инфраструктуре
  4. Типичные архитектуры: один сервер vs кластер
  5. Администрирование: что нужно делать постоянно
  6. Бэкапы, обновления, мониторинг
  7. Облако vs свой сервер: честное сравнение
  8. Как развернуть b8q на своём сервере
  9. Заключение

Каждый раз, когда очередной облачный сервис отключает российских клиентов, в чатах сисадминов начинается одно и то же: «Надо поднять своё». Мессенджер — один из первых кандидатов на переезд, потому что потерять рабочую переписку — это потерять контекст проектов, решения, договорённости. Всё то, что не задокументировано нигде больше.

Этот гайд — для тех, кто уже решил, что мессенджер должен жить на своих серверах, и хочет разобраться в деталях. И для тех, кто ещё думает — чтобы принять взвешенное решение.

Зачем вообще ставить мессенджер к себе

Причин несколько, и они не сводятся к паранойе.

Контроль над данными

Когда мессенджер работает в облаке, ваша переписка физически лежит на чужих серверах. Обычно — в зашифрованном виде, обычно — с приличной защитой. Но «обычно» — это не гарантия. В 2023 году утечки данных из облачных сервисов случались в среднем каждые 39 секунд (данные IBM Cost of a Data Breach Report). Не все — критичные. Но каждая — это чья-то проблема.

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

Независимость от поставщика

Cloud-сервис может: поднять цены, изменить условия, заблокировать аккаунт, уйти с рынка. Self-hosted мессенджер работает, пока работает ваш сервер. Даже если компания-разработчик закроется — ПО, которое уже установлено, продолжит функционировать.

Работа в закрытом контуре

Некоторые организации по своей природе не могут использовать облачные сервисы: военные, спецслужбы, некоторые банки, предприятия с гостайной, промышленные объекты с изолированной сетью. Для них self-hosted — не выбор, а единственный вариант.

Соответствие регуляторным требованиям

ФЗ-152 о персональных данных, требования ФСТЭК, стандарты PCI DSS для платёжных систем — всё это проще выполнить, когда данные под вашим контролем. Формально можно соответствовать и с облаком, но аудиторам гораздо проще показать свой сервер в своей серверной, чем объяснять схему шифрования в чужом облаке.

Кому это подходит (и кому нет)

Self-hosted — не серебряная пуля. Для кого-то это оптимальный вариант, для кого-то — лишняя головная боль.

Self-hosted — для вас, если:

Облако лучше, если:

Нет ничего плохого в облаке — для многих команд это правильный выбор. Главное — принимать решение осознанно, а не по инерции.

Требования к инфраструктуре

Конкретные требования зависят от продукта, но вот ориентиры для типичного корпоративного мессенджера на 100–500 пользователей.

Минимальная конфигурация (до 100 пользователей)

Рекомендуемая конфигурация (100–500 пользователей)

Для 500+ пользователей

Нужен кластер из нескольких серверов. Об этом — в следующем разделе.

Программные требования

Если вы ставите мессенджер в закрытый контур без интернета — Let's Encrypt не подойдёт, нужен внутренний удостоверяющий центр. Это добавляет шаг, но не является чем-то сверхсложным.

Типичные архитектуры: один сервер vs кластер

Один сервер (all-in-one)

Все компоненты — приложение, база данных, файловое хранилище, реверс-прокси — работают на одной машине. Обычно через Docker Compose.

Когда подходит: до 200–300 пользователей, нет требования к высокой доступности (допустим простой при обновлениях).

Плюсы: простота развёртывания, простота обслуживания, один сервер — один бэкап.

Минусы: единая точка отказа. Если сервер упал — мессенджер не работает. Если нужно обновить ОС — мессенджер не работает.

Типичная схема:

Nginx (TLS) → Application Server → PostgreSQL + Redis + File Storage

Два сервера (app + db)

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

Когда подходит: 200–500 пользователей, есть базовые требования к надёжности.

Кластер (high availability)

Несколько экземпляров приложения за балансировщиком нагрузки, реплицированная база данных, распределённое файловое хранилище (S3-совместимое, например MinIO).

Когда подходит: 500+ пользователей, жёсткие требования к доступности (99.9% uptime), несколько географических площадок.

Типичная схема:

Load Balancer (HAProxy / Nginx) → App Server 1, App Server 2, App Server N → PostgreSQL Primary + Replica → Redis Cluster → MinIO (S3)

Кластерная архитектура — это существенное усложнение. Нужен опыт работы с распределёнными системами. Если у вас нет DevOps-инженера с таким опытом — лучше начать с single-server и масштабировать по мере роста.

Администрирование: что нужно делать постоянно

Self-hosted мессенджер — это не «поставил и забыл». Вот список задач, которые нужно выполнять регулярно:

Еженедельно (30 минут)

Ежемесячно (2–4 часа)

Ежеквартально (полдня)

В сумме — около 8–12 часов в месяц для типичной инсталляции на 100–300 пользователей. Это примерно 5% рабочего времени одного сисадмина. Не бесплатно, но и не full-time работа.

Бэкапы, обновления, мониторинг

Бэкапы

Три правила, которые нельзя нарушать:

  1. 3-2-1: три копии данных, на двух разных носителях, одна — вне офиса (или в другом ЦОД).
  2. Тестировать восстановление. Бэкап, из которого невозможно восстановиться, — это не бэкап, это декорация. Раз в квартал — реально поднимать мессенджер из бэкапа на тестовом сервере.
  3. Автоматизировать. Ручные бэкапы не делаются. Всегда. Cron + скрипт + мониторинг выполнения.

Что бэкапить:

Обновления

Типичный процесс обновления для Docker-based мессенджера:

  1. Прочитать changelog новой версии (это важно — бывают breaking changes).
  2. Сделать бэкап базы и файлов.
  3. На тестовом окружении: обновить, проверить, что всё работает.
  4. На продакшене: остановить контейнеры, обновить образы, запустить, проверить.

Простой при обновлении — обычно 2–10 минут. Если это критично, нужна кластерная архитектура с rolling update.

Совет: не обновляйтесь в пятницу. Серьёзно. Если что-то пойдёт не так, лучше разбираться во вторник утром, чем в субботу ночью.

Мониторинг

Минимальный набор того, что нужно мониторить:

Инструменты: Prometheus + Grafana — стандарт де-факто. Если не хочется поднимать стек мониторинга — хотя бы Uptime Kuma для health check и cron + email для бэкапов.

Облако vs свой сервер: честное сравнение

Без перекосов в любую сторону. Факты.

Стоимость

Облако: $5–15 за пользователя в месяц. Для 100 пользователей — $500–1 500/мес. Предсказуемо, без неожиданностей.

Self-hosted: выделенный сервер — от 5 000 до 30 000 руб./мес (в российском ЦОД). Лицензия на ПО — зависит от продукта (от бесплатного open-source до фиксированной цены). Время администратора — 8–12 часов/мес. Для 100 пользователей — примерно 15 000–50 000 руб./мес (всё включено).

Вывод: при 50+ пользователях self-hosted обычно дешевле. При 200+ — значительно дешевле (цена сервера не растёт линейно с количеством пользователей).

Безопасность

Облако: зависите от безопасности провайдера. Обычно хорошая, но вы не контролируете процесс. Если провайдера взломают — ваши данные тоже под угрозой.

Self-hosted: безопасность — ваша ответственность. Это может быть и плюсом (полный контроль), и минусом (если нет компетенций). Плохо настроенный свой сервер опаснее хорошего облака.

Надёжность

Облако: обычно 99.9%+ uptime. У крупных провайдеров — 99.95%. Но: если провайдер заблокировал вас — uptime нулевой.

Self-hosted (один сервер): 99–99.5% при грамотном администрировании. Простой при обновлениях, железных проблемах, человеческих ошибках.

Self-hosted (кластер): 99.9%+ — сравнимо с облаком, но дороже и сложнее в настройке.

Скорость запуска

Облако: минуты. Зарегистрировался — работаешь.

Self-hosted: от 30 минут (простая инсталляция) до нескольких дней (кластер, интеграция с корпоративным AD/LDAP, настройка VPN).

Масштабирование

Облако: добавляешь пользователей — платишь больше. Всё масштабирование — на стороне провайдера.

Self-hosted: нужно планировать заранее. Вертикальное масштабирование (больше ресурсов серверу) — просто. Горизонтальное (больше серверов) — сложнее, зависит от архитектуры продукта.

Как развернуть b8q на своём сервере

Пошаговая инструкция. Предполагаем: Ubuntu 22.04, доступ по SSH, домен с DNS-записью, направленной на сервер.

Шаг 1: Подготовка сервера

Обновите систему и установите Docker:

sudo apt update && sudo apt upgrade -y
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER

Перелогиньтесь, чтобы группа docker применилась.

Шаг 2: Скачайте конфигурацию b8q

mkdir -p /opt/b8q && cd /opt/b8q
curl -fsSL https://get.b8q.ru/docker-compose.yml -o docker-compose.yml
curl -fsSL https://get.b8q.ru/.env.example -o .env

Шаг 3: Настройте переменные окружения

Откройте файл .env и укажите:

# Домен вашего мессенджера
DOMAIN=messenger.company.ru

# Пароль базы данных (сгенерируйте надёжный)
DB_PASSWORD=your_secure_password_here

# Секретный ключ для JWT-токенов
JWT_SECRET=another_secure_random_string

# Email администратора (для Let's Encrypt)
ADMIN_EMAIL=admin@company.ru

Шаг 4: Запустите

docker compose up -d

Docker скачает образы, поднимет контейнеры (приложение, PostgreSQL, Redis, Nginx с автоматическим TLS), и через 2–3 минуты мессенджер будет доступен по адресу https://messenger.company.ru.

Шаг 5: Первоначальная настройка

Откройте мессенджер в браузере. Вы увидите мастер настройки:

  1. Создайте аккаунт администратора.
  2. Задайте название организации.
  3. Настройте первые каналы.
  4. Пригласите пользователей (по email или ссылке-приглашению).

Шаг 6: Настройте бэкапы

Добавьте в cron ежедневный бэкап базы данных:

# Создайте скрипт бэкапа
cat > /opt/b8q/backup.sh << 'SCRIPT'
#!/bin/bash
BACKUP_DIR="/opt/b8q/backups"
mkdir -p $BACKUP_DIR
docker compose exec -T postgres pg_dump -U b8q b8q | gzip > "$BACKUP_DIR/db_$(date +%Y%m%d_%H%M%S).sql.gz"
# Удалить бэкапы старше 30 дней
find $BACKUP_DIR -name "*.sql.gz" -mtime +30 -delete
SCRIPT
chmod +x /opt/b8q/backup.sh

# Добавьте в cron (каждый день в 3:00)
echo "0 3 * * * /opt/b8q/backup.sh" | crontab -

Не забудьте настроить копирование бэкапов на внешнее хранилище (другой сервер, S3, NAS).

Что дальше

После базового развёртывания вы можете:

Полная документация по self-hosted развёртыванию — на странице Self-Hosted. Вопросы по лицензированию и тарифам — на странице тарифов.

Заключение

Мессенджер на своём сервере — это не про паранойю и не про хайп импортозамещения. Это про контроль. Контроль над данными, над доступностью, над стоимостью. Для компаний от 50 человек, с IT-отделом и минимальной инфраструктурой — это часто оптимальный выбор и по цене, и по надёжности.

Ключевые тезисы:

b8q спроектирован так, чтобы развёртывание на своём сервере было простым: Docker Compose, один конфигурационный файл, 30 минут — и у вас полноценный корпоративный мессенджер с чатом, звонками, документами и задачами. Запросите демо — и если подходит, переезжайте к себе.

Self-Hosted решение Запросить демо

Готовы развернуть мессенджер на своём сервере?

b8q: Docker Compose, один конфиг, 30 минут — и у вас полноценный мессенджер с чатом, звонками и документами.

Self-Hosted решение Запросить демо

Готовы к self-hosted?

Разверните b8q на своём сервере за 30 минут. Docker Compose, один конфиг, полный контроль над данными.

Подробнее о Self-Hosted