Mattermost — self-hosted корпоративный чат с каналами, личными сообщениями и интеграциями, который можно развернуть на собственном VDS как замену облачным сервисам вроде Slack. Все сообщения и файлы остаются на сервере компании, а не на стороне внешнего провайдера.
Когда Mattermost заменяет Slack, а когда не стоит пытаться
Mattermost подходит компании, для которой важно, чтобы переписка сотрудников и история сообщений не покидали собственную инфраструктуру — это актуально для команд с требованиями по хранению данных или просто с желанием не зависеть от внешнего сервиса.
Если команда небольшая и возможностей облачного мессенджера ей достаточно, разворачивать и обслуживать собственный сервер не имеет смысла: придётся самостоятельно следить за обновлениями, резервными копиями и доступностью, которые в облаке берёт на себя провайдер.
Что нужно на сервере для Mattermost
Mattermost разворачивается через Docker — установка самого Docker на VDS описана в статье про настройку Docker на VPS. Стандартный способ запуска — контейнер приложения вместе с контейнером базы данных PostgreSQL.
Для небольшой команды хватает от 2 до 4 ГБ оперативной памяти — нижняя граница подходит для нескольких десятков активных пользователей, верхняя даёт запас для одновременных звонков и интеграций с ботами.
Сравнение Mattermost с облачными мессенджерами
Базовый набор функций для переписки у Mattermost и облачных аналогов совпадает, различия — в том, кто отвечает за сервер и данные.
| Параметр | Облачный мессенджер | Mattermost на своём VDS |
|---|---|---|
| Где хранится история сообщений | на серверах провайдера сервиса | на собственном сервере |
| Интеграции с ботами | через официальный маркетплейс | через открытый API без ограничений |
| Лимит на число каналов и участников | зависит от тарифа | зависит от ресурсов VDS |
| Ответственность за резервные копии | провайдер сервиса | администратор сервера |
Установка и настройка домена
Контейнеры приложения и базы данных поднимаются вместе через Docker Compose, после чего остаётся настроить домен.
# Запуск Mattermost и PostgreSQL через Docker Compose
docker compose up -d
# По умолчанию приложение слушает порт 8065
Чтобы открывать Mattermost по HTTPS на порту 443, а не по IP и порту 8065, домен подключается через reverse proxy с SSL-сертификатом — как это сделать через Nginx и Certbot, описано в статье про установку SSL на Nginx.
Что делать, если уведомления или вход не работают
Большинство проблем с Mattermost после установки связаны не с самим чатом, а с окружением вокруг него.
- Проверить настройки SMTP в административной консоли — без рабочего почтового сервера уведомления на email и письма восстановления пароля не приходят.
- Убедиться, что сервер, который отправляет почту, настроен и не попадает в спам — установка собственного почтового сервера описана в статье про Postfix на VPS.
- Проверить порт 587, если почта уходит через внешний SMTP-релей, — именно он чаще всего используется для отправки с авторизацией.
- Посмотреть системные логи контейнера приложения — там видно, какая именно часть запроса на вход или отправку письма завершилась ошибкой.
- Сверить домен в настройках сайта (Site URL) с реальным адресом — несовпадение ломает ссылки в письмах и push-уведомления.
Частые вопросы
Можно ли подключить Mattermost к мобильным приложениям?
Да, у Mattermost есть официальные приложения для мобильных платформ, которые подключаются к серверу по адресу сайта так же, как и браузер.
Нужен ли отдельный сервер только для Mattermost?
Нет, Mattermost можно разместить на том же VDS, где уже работают другие контейнеры, если памяти хватает на все сервисы одновременно — от 2 до 4 ГБ нужно именно самому Mattermost с базой данных.
Что произойдёт с историей переписки при переносе на другой сервер?
История сохраняется в базе данных PostgreSQL, поэтому перенос на новый сервер сводится к переносу тома с базой и конфигурации — сами сообщения при этом не теряются.