Mattermost. Установка на RHEL-like. Пошаговое руководство.

Смотрите также
Debian-like

Mattermost — это популярная платформа для командного общения с открытым исходным кодом, которая может быть развернута на вашем собственном сервере. В этом руководстве мы рассмотрим, как установить Mattermost на AlmaLinux 8/9 и CentOS Stream 9, настроить базу данных MariaDB и обеспечить доступ к веб-интерфейсу.

Протестировано на:

Almalinux: 8 | 9
CentOS Stream: 9|10



1. Установка базы данных (MariaDB)

Mattermost использует MySQL или MariaDB в качестве базы данных. В этом примере мы будем использовать MariaDB.

Шаг 1: Обновление системы и установка MariaDB

Обновите систему и установите MariaDB:

Bash
sudo dnf update -y
sudo dnf install mariadb-server -y

Шаг 2: Запуск и настройка MariaDB

Запустите службу MariaDB и добавьте её в автозагрузку:

Bash
sudo systemctl start mariadb
sudo systemctl enable mariadb

Шаг 3: Настройка базы данных

Подключитесь к консоли MariaDB:

Bash
sudo mysql

Создайте базу данных и пользователя для Mattermost:

SQL
CREATE DATABASE mattermost;
CREATE USER 'mattermost'@'localhost' IDENTIFIED BY 'ваш_пароль';
GRANT ALL PRIVILEGES ON mattermost.* TO 'mattermost'@'localhost';
FLUSH PRIVILEGES;
EXIT;

2. Установка Mattermost

Шаг 1: Создание пользователя для Mattermost

Создайте системного пользователя для Mattermost:

Bash
sudo useradd --system --user-group mattermost

Шаг 2: Загрузка и распаковка Mattermost

Загрузите последнюю версию Mattermost:

Bash
wget https://releases.mattermost.com/10.6.0/mattermost-enterprise-10.6.0-linux-amd64.tar.gz

Распакуйте архив:

Bash
tar -xvzf mattermost-enterprise-10.6.0-linux-amd64.tar.gz

Переместите файлы в каталог /opt:

Bash
sudo mv mattermost /opt

Шаг 3: Настройка каталогов и прав

Создайте каталог для данных и установите права:

Bash
sudo mkdir /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost/
sudo chmod -R g+w /opt/mattermost/

Шаг 4: Настройка конфигурации

Отредактируйте файл конфигурации /opt/mattermost/config/config.json. Найдите строки:

JSON
"DriverName": "postgres",
"DataSource": "postgres://mmuser:mostest@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10",

Измените их на:

JSON
"DriverName": "mysql",
"DataSource": "mattermost:ваш_пароль@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Сохраните и закройте файл.

3. Создание systemd-юнита для Mattermost

Создайте файл юнита /etc/systemd/system/mattermost.service:

Bash
sudo vim /etc/systemd/system/mattermost.service

Добавьте следующее содержимое:

INI
[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service

[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Сохраните файл и перезагрузите демон systemd:

Bash
sudo systemctl daemon-reload

Запустите службу Mattermost и добавьте её в автозагрузку:

Bash
sudo systemctl start mattermost
sudo systemctl enable mattermost

Проверьте статус службы:

Bash
sudo systemctl status mattermost

Примерный вывод:

Примечание: Проблемы с SELinux

Если служба не запускается из-за ошибки Permission Denied, выполните следующие команды:

Bash
sudo semanage fcontext -a -t bin_t "/opt/mattermost/bin(/.*)?"
sudo restorecon -RF /opt/mattermost/bin

4. Открытие портов в firewall

Mattermost по умолчанию использует порт 8065 для веб-интерфейса. Если вы используете Nginx в качестве обратного прокси, также потребуется открыть порт 80 (HTTP) или 443 (HTTPS).

Шаг 1: Открытие порта 8065

Откройте порт 8065 в firewall:

Bash
sudo firewall-cmd --zone=public --add-port=8065/tcp --permanent

Шаг 2: Открытие портов для Nginx (опционально)

Если вы используете Nginx, откройте порты 80 и 443:

Bash
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent

Шаг 3: Применение изменений

Перезагрузите firewall для применения изменений:

Bash
sudo firewall-cmd --reload

Проверьте открытые порты:

Bash
sudo firewall-cmd --list-ports

4. Доступ к веб-интерфейсу Mattermost

Mattermost по умолчанию прослушивает порт 8065. Откройте веб-браузер и перейдите по адресу:

http://ваш_IP_адрес:8065

Вы должны будете увидеть следующую страницу.

Шаг 1: Настройка администратора

На странице приветствия укажите:

  • Адрес электронной почты администратора.
  • Имя пользователя.
  • Пароль.

Нажмите Create Account и следуйте инструкциям на экране.

Шаг 2: Настройка обратного прокси (опционально)

Для доступа к Mattermost через порт 80 или 443 рекомендуется настроить Nginx в качестве обратного прокси. Пример конфигурации Nginx:

Nginx
server {
    listen 80;
    server_name ваш_домен;

    location / {
        proxy_pass http://127.0.0.1:8065;
        proxy_set_header Host $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;
    }
}

Сохраните конфигурацию и перезапустите Nginx:

Bash
sudo systemctl restart nginx

Заключение

Вы успешно установили Mattermost на RHEL-like дистрибутив, открыли необходимые порты в firewall и настроили доступ к веб-интерфейсу. Теперь вы можете использовать эту платформу для командного общения. Если у вас возникнут вопросы или проблемы, оставляйте комментарии ниже.

Пробовали ли вы устанавливать Mattermost? Поделитесь своим опытом в комментариях!

Was this helpful?

0 / 0

Добавить комментарий 0