Goal: описать ресурсы необходимые для поднятия и поддержки chatwoot в режиме горячей замены

Hardware

Два ADV-3 сервера на OVH. ovh-ADV-3-server.jpg Это избыточная мощность, но этого должно хватить нам с головой обслуживать все проекты и иметь стейдж чатвута.

Bucket

Чатвут потребляет R2 бакет для хранения аттачментов к чату. Предлагается не хранить аттачменты более года (в r2 есть авто удаление аттачментов). Предполагается что прайс на это хранение будет до 50 usd.

Мы хотим иметь бекапы базы данных чатвута, и их мы тоже будем складывать в R2. Мы делаем инкрементальные бекапы, стоить будет еще до 20 usd.

Mail

Для получения\отправки почты нужен mailgun аккаунт. Оплата динамическая, минимум 35 usd, поддерживает сразу много доменов.

CDN

Как фронт CDN перед чатвутом мы используем CloudFlare, нам понадобится услуга LoadBalancer в CF. Там динамическое ценообразование. На каждый продукт (кроме CIS продуктов) нам понадобится отдельный домен (чтобы пользователи не видели что мы отвечаем из одного чатвута всем)

CIS

Для оперирования в CIS впереди CF мы установим Fastly. По идее в fastly есть свой LB, но CF версию нам просто быстрее настроить. Количество доменов которые нам нужно будет использовать в фастли на данный момент не известно. Какой будет счет за фастли — неведомо.

Дополнительные расходники

Потенциальные проблемы

  1. у self-hosted chatwoot не бачу retention налаштувань, тільки для cloud версії бачу про це інфо (может привести к деградации производительности со временем)
  2. для видалення attachments - треба буде зовнішній скрипт\сервіс, який буде видаляти messages (https://developers.chatwoot.com/api-reference/messages/delete-a-message)
  3. по видаленню conversations - тут ніби обіцяли зробити, але поки у api reference не бачу endpoint для цього - https://github.com/chatwoot/chatwoot/issues/947
  4. У нас нет HA сетапов chatwoot, для HA сетапа необходимо проверить master-master репликацию БД чатвута, что займет существенный обьем времени. До того как мы это сделаем - в случае даунтайма не будет переключения на резервный сервер.
  5. Мы не испытывали Valkey вместе с Chatwoot, могут возникнуть проблемы с миграцией на valkey вместо redis.
  6. У нас были инциденты с блокировкой mailgun, в связи с чем имеет смысл иметь еще какой-то резервный способ отправки писем
  7. В чатвуте при обновлении на время запуска миграций необходимо целиком останавливать его работу. То есть обновления версия или билдов чатвута будут иметь некоторый даунтайм.