Chatwoot
Открытая платформа поддержки: live-chat на сайте, омниканальный inbox и командная работа с обращениями. Развернули CE v4.14.0, замерили потребление и повесили за Traefik с TLS - как часть поиска self-hosted замены Intercom.
Вердикт
- live-chat на сайте плюс единый inbox для соцсетей и мессенджеров
- команде поддержки: роли, макросы, автоматизация, CSAT, отчеты
- кому нужна замена чат-части Intercom без подписки за агента
- если нужны строгие тикеты и SLA - ближе Zammad
- если нужен только общий email-ящик - легче FreeScout
- при жесткой экономии RAM: Rails+Sidekiq+Postgres+Redis не самый легкий стек
Зачем это в поиске замены Intercom
Intercom - это несколько продуктов сразу: чат на сайте, общий inbox по каналам, база знаний и продуктовая аналитика. Одним self-hosted приложением это не закрыть, поэтому мы разбираем комплект. Chatwoot берет на себя самую заметную часть - live-chat и омниканальную поддержку.
Соседи по серии: Zammad (классические тикеты и email), FreeScout (общий email-ящик), Libredesk (молодой омниканальный helpdesk) и PostHog (продуктовая аналитика и запись сессий). В каждом обзоре отмечаем, какую часть Intercom он закрывает.
Что это и какую задачу решает
Chatwoot - open-source платформа для общения с клиентами. На сайт ставится виджет чата, а все обращения из разных каналов (email, WhatsApp, Telegram, соцсети, API) сходятся в один inbox. Дальше - привычная механика поддержки: назначение агентов, команды и роли, макросы и автоответы, метки, приватные заметки, оценка CSAT.
Сверху - отчеты по нагрузке и агентам, Help Center (публичная база знаний) и AI-ассистент Captain. Под капотом Ruby on Rails с Vue-фронтендом, PostgreSQL, Redis и воркер Sidekiq. Ядро распространяется под MIT (Community Edition).
Чем отличается от платных решений
Сравнение с Intercom и Zendesk по тому, что влияет на выбор.
| Параметр | Chatwoot | Intercom / Zendesk |
|---|---|---|
| Модель цены | бесплатно, MIT | подписка за агента |
| Где данные | ваш сервер | облако вендора |
| Live-chat виджет | есть | есть |
| Омниканальность | email, соцсети, мессенджеры | есть |
| Vendor lock-in | нет | есть |
Тех-стек и архитектура
В нашем docker compose - четыре контейнера: rails (веб-приложение), sidekiq (фоновые задачи и обработка сообщений), postgres (образ pgvector для семантического поиска Captain) и redis (кэш, очереди, live-обновления). Наружу приложение слушает порт 3000, мы завели его за Traefik с автоматическим TLS.
Минимальная конфигурация
Реальные требования против официального минимума.
| Официальный минимум RAM | 2 GB |
| Реально в простое (наш замер) | ~810 MiB |
| Образы на диске | ~3.6 GB |
| Рекомендуем тариф | CPU4-RAM8-DISK100 |
| Тариф Fatmetal | CPU4-RAM8-DISK100 - 1100 руб/мес |
Важно: запуститься можно и на тарифе CPU4-RAM8-DISK100 (2 vCPU / 4 GB), но под реальную нагрузку с несколькими агентами и каналами берите CPU4-RAM8 - Rails с Sidekiq любят память.
В маркетплейсе Fatmetal
Не хотите ставить руками?
Этот стек есть в маркетплейсе Fatmetal - можно не повторять установку из этого разбора вручную. Заказываете сервер, за пару минут получаете рабочий домен, валидный TLS и файл с доступами.
Рекомендуемая конфигурация: CPU4-RAM8-DISK100
Развертывание на Fatmetal
Fatmetal Cloud Server + Ubuntu 24.04 + Docker, наружу через Traefik с TLS.
Создать VM
Тариф CPU4-RAM8-DISK100, Ubuntu 24.04, Docker из маркетплейса.
Взять официальный compose
mkdir chatwoot && cd chatwoot curl -o docker-compose.yaml \ https://raw.githubusercontent.com/chatwoot/chatwoot/v4.14.0/docker-compose.production.yaml curl -o .env \ https://raw.githubusercontent.com/chatwoot/chatwoot/v4.14.0/.env.exampleВ
.envзадатьSECRET_KEY_BASE,FRONTEND_URL, пароль Postgres. В сервис postgres нужно прокинуть тот жеPOSTGRES_PASSWORD(по умолчанию он там пустой).Инициализировать БД и подняться
docker compose run --rm rails bundle exec rails db:schema:load db:seed docker compose up -dПроверка:
curl -I localhost:3000отдает редирект на онбординг.
Что измерили после запуска
Цифры со свежей установки на нашем сервере, без нагрузки.
| RAM в простое (всего) | ~810 MiB |
| rails (веб) | ~361 MiB |
| sidekiq (воркер) | ~397 MiB |
| postgres / redis | ~46 MiB / ~4 MiB |
| Образы на диске | ~3.6 GB |
Главное: в простое стек держит около 810 MiB, из них половина - воркер Sidekiq. Основной едок памяти под нагрузкой - именно веб и воркер, поэтому запас RAM закладывайте на них.
Проверено на версии v4.14.0, июнь 2026. На новых версиях результаты могут отличаться.
Где может сломаться
Реальные грабли, на которые наткнулись при запуске.
Пустой пароль Postgres. В официальном compose у сервиса postgres POSTGRES_PASSWORD пустой и перекрывает .env - контейнер БД падает в цикл. Пропишите пароль явно в сервис postgres.
Гонка при db:create. Комбинированный db:chatwoot_prepare иногда ловит гонку на создании базы. Надежнее задать имя БД в postgres и выполнить db:schema:load с db:seed раздельно.
Причина. В сервис postgres не пришел пароль - в compose он задан пустым и перекрывает переменную из .env.
Решение. В блоке postgres замените POSTGRES_PASSWORD= на реальное значение или ${POSTGRES_PASSWORD}.
Безопасность и обновления
Наружу приложение отдаем только через reverse-proxy с TLS - у нас это Traefik с сертификатом Let's Encrypt на отдельном домене. Порт 3000 остается на localhost. Обновление - смена тега образа и перезапуск с миграциями:
docker compose pull
docker compose run --rm rails bundle exec rails db:migrate
docker compose up -d
Бэкап - дамп Postgres и папка с загруженными вложениями:
docker compose exec postgres pg_dump -U postgres chatwoot_production > backup.sql
Связь с другими стеками
- Обратный прокси - Traefik или Nginx Proxy Manager для TLS и домена.
- Тикеты и email - Zammad как соседний инструмент, если нужна строгая тикет-система.
- Продуктовая аналитика - PostHog, чтобы закрыть аналитическую часть Intercom.
Когда это НЕ ваш выбор
Нужны строгие тикеты и SLA
Если основа работы - формальные заявки с эскалацией и SLA, классическая тикет-система вроде Zammad подойдет лучше.
Достаточно общего почтового ящика
Если задача - просто разгрести общий email на команду, FreeScout проще и легче.
Совсем мало ресурсов
Rails с Sidekiq, Postgres и Redis заметно тяжелее PHP-хелпдесков - на самом тарифе CPU4-RAM8-DISK100 будет тесно под нагрузкой.
Частые вопросы
Сколько Chatwoot ест в простое?
В нашем замере около 810 MiB на четыре контейнера (rails, sidekiq, postgres, redis).
Хватит ли тарифа CPU4-RAM8-DISK100?
Для теста и малой команды - да. Под реальную нагрузку с несколькими агентами и каналами берите CPU4-RAM8.
Это замена Intercom?
Чат-части и омниканальной поддержки - да. Продуктовую аналитику Intercom закрывает отдельный инструмент (PostHog).
Какие каналы поддерживает?
Сайт-виджет, email, WhatsApp, Telegram, соцсети, API. Все в одном inbox.
Можно ли сразу в продакшен?
Да, за reverse-proxy с TLS. Мы повесили Chatwoot за Traefik с Let's Encrypt.
Как обновлять?
Сменить тег образа, прогнать db:migrate и перезапустить compose.
Какая лицензия?
MIT для Community Edition. Часть корпоративных фич - в отдельной enterprise-редакции.
Итог
Chatwoot v4.14.0 - зрелая self-hosted платформа поддержки: live-chat, омниканальный inbox, команды, отчеты и база знаний. В простое ~810 MiB на четыре контейнера, разворачивается docker compose, спокойно живет за Traefik с TLS. В связке с Zammad, FreeScout и PostHog закрывает основную часть функций Intercom без подписки и с данными на своем сервере.
Этот стек у нас запущен на тарифе CPU6-RAM16-DISK100 за Traefik с TLS. Нашли баг в гайде - напишите, поправим в течение дня.