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, тому перенесення на новий сервер зводиться до перенесення тому з базою і конфігурації — самі повідомлення при цьому не втрачаються.