Установка сервера Mattermost
Введение
Mattermost - это корпоративная система обмена сообщениями, предназначенная для командной работы и внутренней коммуникации. По функциональности она напоминает такие сервисы, как Slack, Microsoft Teams или Discord, однако главным преимуществом Mattermost является возможность полностью самостоятельного размещения сервера.
При использовании облачных мессенджеров данные компании хранятся на сторонних серверах. В случае Mattermost вся инфраструктура располагается на вашем собственном сервере, что позволяет:
- полностью контролировать данные и переписку
- интегрировать систему с внутренними сервисами
- создавать автоматические уведомления и ботов
- подключать вебхуки и интеграции
- настраивать доступ пользователей и команд
Также Mattermost отлично подходит для организации централизованных уведомлений от различных систем мониторинга, автоматизации и инфраструктуры. Например, можно отправлять события из систем мониторинга, серверов или сетевого оборудования прямо в каналы мессенджера.
Установка
1. Обновление системы
Перед установкой программ рекомендуется обновить список пакетов и установить последние версии программного обеспечения.
apt update && apt upgrade -y
2. Установка необходимых утилит
Теперь установим набор базовых утилит, которые могут понадобиться в процессе установки.
apt install sudo curl wget gnupg2 ca-certificates lsb-release -y
3. Создание системного пользователя
Для повышения безопасности сервер Mattermost будет работать от отдельного системного пользователя.
useradd --system --user-group mattermost
4. Установка PostgreSQL
Mattermost хранит данные пользователей, каналов и сообщений в базе данных.
Для этого используется PostgreSQL.
apt install postgresql postgresql-contrib -y
Для настройки базы данных необходимо подключиться к консоли PostgreSQL.
sudo -u postgres psql
6. Создание базы данных
Теперь необходимо создать базу данных и пользователя для Mattermost.
В консоли PostgreSQL выполните:
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'ВАШ_ПАРОЛЬ_БД';
ALTER DATABASE mattermost OWNER TO mmuser;
После выполнения команд можно выйти из консоли PostgreSQL.
7. Загрузка сервера Mattermost
Теперь необходимо скачать архив с сервером Mattermost.
wget https://releases.mattermost.com/11.5.1/mattermost-11.5.1-linux-amd64.tar.gz
Файл содержит готовую сборку сервера.
8. Распаковка архива
Распакуем скачанный архив.
tar -xvzf mattermost-11.5.1-linux-amd64.tar.gz
9. Перемещение программы
Переместим каталог программы в директорию /opt.
mv mattermost /opt
Директория /opt традиционно используется для установки стороннего программного обеспечения.
10. Создание каталога для данных
Mattermost хранит загруженные файлы пользователей в отдельной директории.
mkdir /opt/mattermost/data
11. Настройка прав доступа
Теперь необходимо передать управление каталогом пользователю mattermost.
chown -R mattermost:mattermost /opt/mattermost
Это позволит серверу корректно работать с файлами и данными.
12. Настройка конфигурации Mattermost
Откроем основной конфигурационный файл сервера.
nano /opt/mattermost/config/config.json
В файле необходимо найти раздел подключения к базе данных и изменить его следующим образом:
"SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mmuser:ВАШ_ПАРОЛЬ_БД@localhost:5432/mattermost?sslmode=disable"
}
13. Создание системного сервиса
Чтобы сервер автоматически запускался вместе с системой, создадим сервис systemd.
nano /etc/systemd/system/mattermost.service
Добавьте следующий конфигурационный файл:
[Unit]
Description=Mattermost
After=network.target
[Service]
Type=simple
User=mattermost
WorkingDirectory=/opt/mattermost
ExecStart=/opt/mattermost/bin/mattermost
Restart=always
[Install]
WantedBy=multi-user.target
Этот сервис отвечает за запуск и управление сервером Mattermost.
14. Активация сервиса
Теперь необходимо активировать сервис и запустить сервер.
systemctl daemon-reexec
systemctl daemon-reload
systemctl enable mattermost
systemctl start mattermost
systemctl status mattermost
Если установка выполнена корректно, сервис будет находиться в состоянии active (running).
15. Установка Nginx
Теперь установим веб-сервер Nginx, который будет выступать в роли обратного прокси.
apt install nginx -y
16. Создание конфигурации сайта
Создадим конфигурационный файл для Mattermost.
nano /etc/nginx/sites-available/mattermost
Добавьте следующий конфигурационный блок:
server {
listen 80;
server_name ms.tex-lab.ru;
location / {
proxy_pass http://localhost:8065;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Host $host;
}
}
В этой конфигурации:
- Nginx принимает HTTP-запросы
- затем передаёт их серверу Mattermost, который работает на порту 8065
17. Активация конфигурации
Теперь включим созданный сайт.
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
18. Перезапуск Nginx
Чтобы применить изменения, необходимо перезапустить веб-сервер.
systemctl restart nginx
19. Установка Certbot
Теперь установим Certbot для получения SSL-сертификата.
apt install certbot python3-certbot-nginx -y
20. Получение SSL-сертификата
Запустим автоматическое получение сертификата Let's Encrypt.
certbot --nginx -d ms.tex-lab.ru
Certbot автоматически:
- получит сертификат
- настроит HTTPS
- обновит конфигурацию Nginx
21. Проверка работы сервера
Проверим состояние сервера Mattermost.
systemctl status mattermost
Если сервер работает корректно, он будет находиться в состоянии active (running).
После этого сервер станет доступен через браузер по адресу:
https://ms.tex-lab.ru