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)