Mattermost – это система обмена сообщениями с открытым исходным кодом. Она представляет собой безопасный и гибкий чат-сервис с функциями обмена файлами, поиска и другими интеграциями. Mattermost проста в использовании и имеет очень дружественный пользовательский интерфейс, что делает ее отличной бесплатной альтернативой Slack, Microsoft Teams и другим подобным сервисам. В этом руководстве мы покажем вам, как установить Mattermost на AlmaLinux
Шаг 1: Войдите на свой сервер по SSH
Во-первых, необходимо войти в систему по протоколу SSH под именем пользователя root:
ssh root@IP_Address -p Port_number
Замените „IP_Address“ и „Port_number“ на соответствующие IP-адрес и номер порта SSH вашего сервера. Кроме того, замените „root“ на имя пользователя системы с привилегиями sudo.
Вы можете проверить, установлена ли на вашем сервере нужная версия AlmaLinux, выполнив следующую команду:
cat /etc/almalinux-release
Вы получите примерно такой результат:
AlmaLinux release 8.8 (Sapphire Caracal)
В этой статье мы используем „root“ для выполнения команд команд оболочки. Если вы хотите использовать для выполнения команд обычного пользователя с привилегиями sudo, обязательно добавьте „sudo“ перед командами.
Шаг 2: Обновление системы
Перед началом работы необходимо убедиться, что все пакеты ОС AlmaLinux, установленные на сервере, актуальны. Это можно сделать, выполнив следующие команды:
dnf update dnf upgrade
Если произошло обновление ядра, то для загрузки новой версии ядра необходимо перезагрузиться. Теперь, когда ядро обновлено, мы можем приступить к установке.
Шаг 3. Создание пользователя
На этом шаге мы создадим нового системного пользователя, под которым будет запущена служба Mattermost. Выполним приведенную ниже команду; вы можете заменить „mattermost“ на любое имя пользователя.
useradd -mrd /opt/mattermost mattermost -s "$(which bash)"
Приведенная выше команда автоматически создаст каталог /opt/mattermost в качестве домашнего каталога для пользователя „mattermost“. Мы будем использовать этот каталог в качестве каталога установки Mattermost.
Шаг 4. Установка MariaDB и создание базы данных
Mattermost поддерживает PostgreSQL 11.0, MySQL 5.7.12, 8.0.12 или аналогичный сервер MariaDB. Установим MariaDB через репозиторий AlmaLinux. Для этого достаточно выполнить следующую команду:
dnf install mariadb-server -y
MariaDB уже установлена, но в данный момент она не работает. Давайте сконфигурируем ее так, чтобы она запускалась сейчас и запускалась при перезагрузке сервера.
systemctl enable --now mariadb
После завершения установки можно повысить безопасность сервера MySQL, запустив скрипт mysql_secure_installation:
mysql_secure_installation
Вы получите запрос на создание нового пароля для корневой учетной записи MySQL. На все вопросы рекомендуется отвечать Y (YES). Как видно на рисунке ниже, мы создали надежный пароль MySQL, удалили тестовую базу данных, а также удалили анонимных пользователей.

MariaDB запущена и теперь защищена. Далее создадим новую базу данных для нашего приложения mattermost. Для этого необходимо подключиться к серверу MariaDB/MySQL, выполнив команду:
mysql -u root -p
Вам будет предложено ввести пароль корня MariaDB, который был установлен при выполнении команды mysql_secure_installation ранее в этом шаге.
Это даст вам доступ к оболочке MariaDB:
Welcome to the MariaDB monitor. Commands end with ; or \g. Your MariaDB connection id is 17 Server version: 10.3.35-MariaDB MariaDB Server Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. MariaDB [(none)]>
Давайте создадим новую базу данных и пользователя базы данных.
MariaDB [(none)]> CREATE DATABASE mattermostdb; Query OK, 1 row affected (0.001 sec) MariaDB [(none)]> CREATE USER 'mattermost'@'localhost' IDENTIFIED BY 'm0d1fyth15'; Query OK, 0 rows affected (0.000 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.000 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> \q
Для повышения безопасности не забудьте изменить имя пользователя и пароль для пользователя, который будет управлять базой данных Mattermost. Теперь мы можем перейти к следующему шагу.
MariaDB [(none)]> CREATE DATABASE mattermostdb; Query OK, 1 row affected (0.001 sec) MariaDB [(none)]> CREATE USER 'mattermost'@'localhost' IDENTIFIED BY 'm0d1fyth15'; Query OK, 0 rows affected (0.000 sec) MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'localhost' WITH GRANT OPTION; Query OK, 0 rows affected (0.000 sec) MariaDB [(none)]> FLUSH PRIVILEGES; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> \q
Шаг 5. Загрузка и установка Mattermost
На предыдущем шаге мы создали системного пользователя „mattermost“; давайте переключимся на этого пользователя и загрузим Mattermost. Если вы хотите загрузить последнюю версию tarball-пакета, перейдите на страницу загрузки по адресу
https://docs.mattermost.com/install/install-tar.html и замените ссылку в команде ниже на самую новую версию.
su - mattermost wget https://releases.mattermost.com/9.0.1/mattermost-9.0.1-linux-amd64.tar.gz -O mattermost.tar.gz tar -xzvf mattermost.tar.gz --strip-component 1
Перед запуском Mattermost нам необходимо настроить его для подключения к нашей базе данных.
cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json
Настройте следующие свойства в этом файле:
Set the DriverName field to "mysql".
Set the DataSource field to "dbuser:@:3306/dbname?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Замените dbuser, dbpassword на ваши dbuser и dbpassword, которые вы создали на предыдущем шаге; в данном случае это будет:
"DataSource": "mattermost:m0d1fyth15@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
Set your "SiteURL" to the domain name you want for your Mattermost application (e.g. https://mattermost.yourdomain.com).
Сохраните файл, затем выйдите из редактора nano
Затем выйдите от пользователя „mattermost“:
exit
Шаг 6. Создание файла службы Systemd
Для удобного управления службой Mattermost нам необходимо создать файл службы systemd. Давайте создадим служебный файл systemd для Mattermost.
nano /etc/systemd/system/mattermost.service
Вставьте в служебный файл systemd следующие слова, затем сохраните его.
[Unit] Description=Mattermost After=network.target [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=multi-user.target
Сохраните файл, выйдите из редактора nano, затем перезагрузите systemd, чтобы изменения вступили в силу.
systemctl daemon-reload
Теперь давайте включим запуск Mattermost при загрузке и запустим службу.
systemctl enable --now mattermost
В результате выполнения команды Mattermost должен быть запущен и автоматически запускаться при загрузке.
Created symlink /etc/systemd/system/multi-user.target.wants/mattermost.service → /etc/systemd/system/mattermost.service.
На данный момент Mattermost должен быть запущен, и он будет автоматически запускаться при загрузке. Чтобы убедиться в этом, выполните следующую команду:
systemctl status mattermost
Вы увидите результат, подобный этому
● mattermost.service - Mattermost
Loaded: loaded (/etc/systemd/system/mattermost.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2023-09-14 21:18:02 EDT; 2min 8s ago
Main PID: 55973 (mattermost)
Tasks: 26 (limit: 4737)
Memory: 236.5M
CGroup: /system.slice/mattermost.service
├─55973 /opt/mattermost/bin/mattermost
├─56133 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
├─56139 plugins/playbooks/server/dist/plugin-linux-amd64
└─56146 plugins/com.mattermost.calls/server/dist/plugin-linux-amd64
Sep 14 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.957 -04:00","level":"info","msg":"got public IP address for
Sep 14 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.957 -04:00","level":"info","msg":"rtc: server is listening
Sep 14 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.959 -04:00","level":"info","msg":"rtc: server is listening
Sep 14 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.961 -04:00","level":"info","msg":"Listening TCP on 0.0.0.0:
Sep 14 21:18:02 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:02.660 -04:00","level":"info","msg":"Starting Server...","call
Sep 14 21:18:02 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:02.664 -04:00","level":"info","msg":"Server is listening on [:
Sep 14 21:18:02 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:02.664 -04:00","level":"info","msg":"Sending systemd READY not
Sep 14 21:18:02 localhost.localdomain systemd[1]: Started Mattermost.
На данный момент вы должны иметь доступ к mattermost по адресу http://YOUR_SERVER_IP_ADDRESS:8065
Шаг 7. Установка и настройка Nginx
Чтобы получить доступ к Mattermost без необходимости указывать порт в конце URL, нам необходимо установить и настроить обратный прокси. В этом шаге мы установим Nginx.
dnf install nginx
После установки мы можем создать серверный блок Nginx для нашего сайта mattermost.
nano /etc/nginx/conf.d/mattermost.conf
Затем вставьте в файл следующее.
server {
listen 80;
server_name mattermost.yourdomain.com;
location ~ /api/v[0-9]+/(users/)?websocket$ {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
client_max_body_size 50M;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
client_body_timeout 60;
send_timeout 300;
lingering_timeout 5;
proxy_connect_timeout 90;
proxy_send_timeout 300;
proxy_read_timeout 90s;
proxy_http_version 1.1;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_buffers 256 16k;
proxy_buffer_size 16k;
proxy_read_timeout 600s;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_http_version 1.1;
proxy_pass http://backend;
}
}
Убедитесь, что вы заменили mattermost.yourdomain.com на домен, который вы выбрали ранее. Сохраните файл и выйдите из редактора. Затем запустите и включите Nginx.
systemctl enable --now nginx
Вот и все, теперь вы должны иметь доступ к Mattermost по адресу http://mattermost.yourdomain.com.


Поздравляем! Вы следовали этой статье и теперь успешно установили Mattermost на свою машину AlmaLinux.




Комментарии (0)