# Mattermost. Часть 1. Установка и запуск
Создание удобной и функциональной среды для общения участников внутри команды — важная задача в ходе разработки. Для этого компании используют корпоративный мессенджер.
Mattermost — быстрый и удобный корпоративный мессенджер. Он устанавливается напрямую на ваш сервер и хранит все данные — от истории переписки до пересылаемых файлов — в созданной для него базе данных. Администратор Mattermost может полноценно управлять всеми учётными записями: создавать и удалять, открывать доступ к определённым диалогам, ограничивать доступ и т.д.
В первой части нашей инструкции мы расскажем об установке Mattermost на сервер: установим само приложение, создадим для него базу данных и пользователя, под которым приложение будет подключаться к базе, развернём сервер Mattermost и зарегистрируемся в программе. В качестве СУБД будем использовать MySQL, но Mattermost поддерживает работу и с PostgreSQL.
Для начала работы нам понадобится только подготовленный к работе сервер под управлением Ubuntu.
# Подготовка к установке
Начнём установку мессенджера с подготовки базы данных для него. Обновим пакеты apt и установим MySQL:
sudo apt update
sudo apt upgrade
sudo apt install mysql-server
После завершения установки MySQL запустим встроенный скрипт-настройщик безопасности:
sudo mysql_secure_installation
В ходе работы он предложит задать новый пароль root-пользователя, запретить удалённое подключение root-пользователя к базе, удалить анонимных пользователей и тестовые базы данных, которые могли быть созданы ранее или остаться от предыдущих установок. Рекомендуем согласиться со всеми предложенными действиями.
При первом запуске скрипт также предложит выбрать уровень безопасности задаваемых паролей — рекомендуем внимательно ознакомиться с предложенными уровнями и выбрать тот, с которым вам будет удобнее всего работать.
После завершения работы скрипта зайдём в MySQL, чтобы создать нового пользователя для Mattermost:
sudo mysql
По умолчанию в MySQL выключен режим авторизации, подразумевающий введение пароля, однако при указании sudo
в начале командной строки вход root-пользователя будет произведён без пароля.
После входа в консоль MySQL создадим нового пользователя для Mattermost:
create user 'mmuser'@'%' identified by 'mmuser-password';
Запись «@%
» означает localhost
— Mattermost и MySQL установлены на одной машине. Если они будут установлены на разных серверах, то вместо %
нужно указать IP-адрес, с которого будет производиться подключение.
При задании пароля будьте внимательны — его надёжность будет проверяться в зависимости от выбранного при настройке системы уровня. Проверить заданный уровень надёжности пароля и требования к нему можно командой:
show variables like 'validate_password%';
# Output
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password.check_user_name | ON |
| validate_password.dictionary_file | |
| validate_password.length | 8 |
| validate_password.mixed_case_count | 1 |
| validate_password.number_count | 1 |
| validate_password.policy | MEDIUM |
| validate_password.special_char_count | 1 |
+--------------------------------------+--------+
В данном случае установлен средний уровень безопасности, требующий длины пароля в 8 символов, с одной цифрой, одной заглавной буквой и одним спецсимволом.
После создания нового пользователя создадим базу данных для него:
create database mattermost
Теперь передадим новому пользователю все права на эту базу:
grant all privileges on mattermost.* to 'mmuser'@'%';
После этого обновим доступные привилегии, и можно будет выходить из MySQL:
flush privileges
exit
Подготовительные работы по предварительной настройке сервера окончены, можно переходить к установке Mattermost.
# Установка Mattermost
Устанавливать будем с официального сайта Mattermost. Для этого выберем необходимую версию из списка доступных и скачаем архив с нужной версией на сервер:
wget https://releases.mattermost.com/X.X.X/mattermost-X.X.X-linux-amd64.tar.gz
Здесь нужно заменить x.x.x
на номер версии, который хотите установить.
После скачивания архива распакуем его и переместим полученную папку в новую директорию:
sudo tar -xvzf mattermost-X.X.X-linux-amd64.tar.gz
sudo mv mattermos /opt
# Подготовка к запуску
Сначала создадим директорию, в которой будут размещаться все данные Mattermost — диалоги, пересылаемые файлы и т.д. Позаботьтесь заранее, чтобы эта директория имела доступ к достаточному объёму дискового пространства:
sudo mkdir /opt/mattermost/data
После этого создадим нового пользователя для работы с Mattermost и передадим ему все права на управление папками:
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost
Когда новый пользователь создан, можно переходить к настройке конфигурационного файла Mattermost. Откроем его в любом текстовом редакторе:
sudo vim /opt/mattermost/config/config.json
Это очень большой текстовый файл, отвечающий за работу сервера Mattermost. Здесь нам нужно изменить всего две строки.
Найдём раздел переменных SqlSettings
. В строке DriverName
нужно указать используемую СУБД, в нашем случае это будет mysql
, а в строке DataSource
, отвечающей за подключение к базе данных, укажем следующие параметры:
username:<password>@<host-name-or-IP>:3306/mattermost?charset=utf8mb4,utf8&writeTimeout=30s"
Здесь:
username:<password>
— имя и пароль mysql-пользователя, созданного для работы с Mattermost.<host-name-or-IP>:3306
— адрес и порт, по которому доступна база данных. Если вы устанавливаете Mattermost на тот же сервер, на котором создана база данных для него, то адресом будетlocalhost
. Проверить номер порта, который слушает MySQL, можно командойsudo netstat -tulpn
.mattermost
— имя базы данных, созданной для Mattermost.
Сохраняем сделанные изменения и проверяем работу Mattermost. Для этого перейдём в папку, содержащую распакованный архив Mattermost:
cd /opt/mattermost
Запустим исполняемый файл от имени специально созданного для этого пользователя:
sudo -u mattermost ./bin/mattermost
Если всё было сделано правильно, то после старта сервера на экране должно появиться сообщение:
Server is listening on :8065
Сервер запущен и работает! Остановим его ctrl+C
и закончим настройку.
# Запуск веб-интерфейса
Создадим системный файл, который позволит нам запускать Mattermost в качестве сервиса:
sudo vim /lib/systemd/system/mattermost.service
В общем случае содержимое файла будет следующим:
[Unit]
Description=Mattermost
After=network.target
After=mysql.service
BindsTo=mysql.service
[Service]
Type=notify
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
KillMode=mixed
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
[Install]
WantedBy=mysql.service
Если в качестве СУБД вы используете PostgreSQL, то необходимо во всех соответствующих строчках указать его вместо mysql.service
.
Если MySQL и Mattermost установлены на одном сервере, то нужно удалить строки After=mysql.service
и BindsTo=mysql.service
, а в строке WantedBy
указать значение multi-user.target
.
После завершения редактирования сохраняем новый файл и добавляем новый сервис в систему:
sudo systemctl daemon-reload
Теперь можно запускать Mattermost:
sudo systemctl start mattermost.service
Ваша версия Mattermost активна и доступна для начала работы. Проверить её работоспособность можно, зайдя в браузере по адресу your_server_ip:8065
. Вы должны увидеть стартовую страницу Mattermost:
Здесь 8065 — стандартный порт для работы Mattermost.
Если вы используете VPS на Джино и не подключаете для него выделенный IP, то создайте перенаправление для порта 8065. В разделе УправлениеПеренаправление портов укажите номер порта 8065 и после создания перенаправления в адресной строке браузера указывайте новый номер порта.
О первичной настройке Mattermost — создании новых пользователей, управлении правами доступа и подключении Nginx в качестве обратного прокси — читайте во второй части нашей инструкции.