Как установить Mattermost на AlmaLinux

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.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Вдохновлен www.rosehosting.com

Похожие статьи

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