Гид по технологиям

Установка Mattermost с Nginx на Alma Linux 8

• 6 min read • DevOps • Обновлено 21 Nov 2025
Установка Mattermost с Nginx на Alma Linux 8
Установка Mattermost с Nginx на Alma Linux 8

TL;DR

Mattermost — бесплатная и самохостимая платформа для чата и совместной работы. В этом пошаговом руководстве показано, как установить Mattermost на Alma Linux 8 с бэкендом MySQL, запустить сервис как systemd unit и настроить Nginx в роли обратного прокси. Включены советы по безопасности, настройке TLS, базовые проверки работоспособности и список типичных операций для администраторов.

Ключевые термины

  • Mattermost — серверная платформа для командного чата и автоматизации рабочих процессов.
  • reverse proxy — обратный прокси (Nginx) принимает внешние запросы и перенаправляет их на внутренний сервис.

Предисловие

Логотип Mattermost

Важно: инструкция предполагает, что у вас есть привилегии root на сервере Alma Linux 8 и доменное имя, указывающее на IP сервера.

Предварительные требования

  • Сервер с Alma Linux 8.
  • Доменное имя, указывающее на IP сервера (A/AAAA запись).
  • Настроен root-пароль или sudo-доступ.
  • Открытые порты 80/443 (для внешнего доступа) и 8065 (внутреннее прослушивание Mattermost).

План действий

  1. Установить и настроить MySQL.
  2. Создать базу данных и пользователя Mattermost.
  3. Установить Mattermost, задать права и конфигурацию.
  4. Создать unit systemd и запустить сервис.
  5. Настроить Nginx как обратный прокси, при необходимости включить HTTPS.
  6. Настроить брандмауэр и проверить доступ к веб-интерфейсу.

Установка MySQL

Mattermost поддерживает MySQL/MariaDB как бэкенд. Выполните на сервере:

dnf install mysql-server -y

Запустите и включите сервис:

systemctl start mysqld
systemctl enable mysqld

Запустите скрипт безопасной настройки и следуйте подсказкам:

mysql_secure_installation

Подсказки (пример): при запросе удаления анонимных пользователей и тестовой БД ответьте Y. Установите надёжный пароль для root.

Примечание: если вы предпочитаете MariaDB, используйте dnf install mariadb-server и аналогичные команды systemctl.

Создание базы данных для Mattermost

Войдите в MySQL как root:

mysql -u root -p

Выполните команды для создания базы и пользователя (замените password на надёжный пароль):

CREATE DATABASE matterdb CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci;
CREATE USER 'matteruser'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON matterdb.* TO 'matteruser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

Важно: использование utf8mb4 рекомендуется для корректной работы с эмодзи и многобайтовыми символами.

Установка Mattermost

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

useradd --system --user-group mattermost

Скачайте актуальную сборку (в примере используется конкретная версия; при установке проверьте релизы на официальном сайте):

wget https://releases.mattermost.com/6.0.2/mattermost-6.0.2-linux-amd64.tar.gz

Распакуйте и переместите в /opt:

tar -xf mattermost-6.0.2-linux-amd64.tar.gz
mv mattermost /opt

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

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

Отредактируйте файл конфигурации:

nano /opt/mattermost/config/config.json

Укажите публичный URL вашего сайта (пример):

"SiteURL": "http://mattermost.example.com",

Найдите и замените параметры базы данных (по умолчанию PostgreSQL) на MySQL:

"DriverName": "mysql",
"DataSource": "matteruser:password@tcp(localhost:3306)/matterdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Сохраните изменения.

Важно: сохраняйте логин/пароль базы отдельно и не выкладывайте их публично.

Создание systemd unit для Mattermost

Создайте файл:

nano /etc/systemd/system/mattermost.service

Вставьте содержимое:

[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 и запустите сервис:

systemctl daemon-reload
systemctl start mattermost
systemctl enable mattermost
systemctl status mattermost

Проверьте, что процесс слушает порт 8065:

ss -antpl | grep 8065

Ожидаемый вывод показывает процесс mattermost, слушающий *:8065.

Настройка Nginx как обратного прокси

Установите Nginx:

dnf install nginx -y

Создайте файл конфигурации виртуального хоста:

nano /etc/nginx/conf.d/mattermost.conf

Пример минимальной конфигурации (HTTP):

server {
    listen       80;
    server_name  mattermost.example.com;

    include /etc/nginx/default.d/*.conf;

    location / {
        proxy_pass http://localhost: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;
    }

    error_page 404 /404.html;
    location = /40x.html { }

    error_page 500 502 503 504 /50x.html;
    location = /50x.html { }
}

Проверьте конфигурацию и запустите Nginx:

nginx -t
systemctl start nginx
systemctl enable nginx
systemctl status nginx

Примечание: добавлены заголовки proxy_set_header — они важны для корректной работы аутентификации, обратных ссылок и получения реального IP клиента.

Рекомендация: включение TLS (Let’s Encrypt)

Для защищённого доступа выполните следующие шаги:

  1. Установите certbot и плагин для Nginx:
dnf install certbot python3-certbot-nginx -y
  1. Запустите получение сертификата (замените domain на ваш домен):
certbot --nginx -d mattermost.example.com

Certbot автоматически обновит конфигурацию Nginx и добавит перенаправление HTTP->HTTPS. Проверьте, что в config.json параметр SiteURL начинается с https://.

Важно: проверьте, что порты 80/443 открыты и DNS указывает на сервер.

Настройка брандмауэра

Разрешите HTTP и HTTPS:

firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload

Если вы используете нестандартный фаервол (ufw, сетевые ACL), настройте его соответствующим образом.

Доступ к веб-интерфейсу и первичная настройка

Откройте браузер и перейдите по URL http://mattermost.example.com или https://mattermost.example.com если включён TLS.

Форма входа Mattermost

Создайте аккаунт администратора: укажите email, логин администратора и пароль, затем нажмите Create Account.

Создание команды

Создайте команду (workspace): нажмите Create a team, задайте название команды и URL команды.

Установка имени команды

Настройка URL команды в Mattermost

После завершения вы попадёте на панель управления Mattermost.

Панель Mattermost

Безопасность и рекомендации по эксплуатации

  • Права файлов: /opt/mattermost должен принадлежать пользователю mattermost и не должен быть доступен другим пользователям.
  • SELinux: если SELinux включён, проверьте контексты и при необходимости создайте правила для доступа к сокетам/файлам. Временное решение — permissive режим, но лучше настроить контексты правильно.
  • Бэкапы: планируйте регулярный экспорт базы данных и резервирование каталога /opt/mattermost и /opt/mattermost/data.
  • Обновления: при обновлении Mattermost останавливайте сервис systemctl stop mattermost, применяйте обновление и затем systemctl start mattermost. Проверяйте совместимость плагинов.
  • Мониторинг: собирайте логи systemd и Mattermost (stdout/файлы логов) в систему мониторинга и настраивайте алерты на падение сервиса.

Роль‑ориентированные чек-листы

Администратор (перед вводом в эксплуатацию):

  • DNS указывает на сервер
  • Получен TLS-сертификат
  • Создан админ-аккаунт
  • Настроен резервный план

DevOps / Системный администратор:

  • Проверена конфигурация systemd
  • Настроен Nginx и правила брандмауэра
  • Настроен лог-роутинг/ротация
  • Созданы бэкапы БД и файлов

Безопасность / ИнфоSec:

  • Протестирована MFA для админов
  • Ограничен доступ к серверу (SSH, брандмауэр)
  • Проверены политики паролей

Критерии приёмки

  • Mattermost отвечает на HTTPS-запросы и загружает интерфейс.
  • Вход в систему возможен с учётной записи администратора.
  • Сервис автоматически стартует после перезагрузки (systemctl enable).
  • Регулярные бэкапы базы успешно восстанавливаются в тестовой среде.

Простая методика тестирования после установки

  1. Создать пользователя и команду.
  2. Отправить сообщение в канал, проверить доставку и историю поиска.
  3. Загрузить файл и убедиться, что он доступен и сохраняется в /opt/mattermost/data.
  4. Проверить логирование ошибок systemctl status и journalctl -u mattermost -e.

Отладка и распространённые проблемы

  • Если Mattermost не стартует: проверьте journalctl -u mattermost -b и /opt/mattermost/logs.
  • Проблемы с подключением к MySQL: проверьте доступность порта 3306, правильность пароля и права пользователя.
  • 502 Bad Gateway от Nginx: убедитесь, что Mattermost слушает порт 8065 и Nginx проксирует на правильный адрес.

Полезные команды:

systemctl status mattermost
journalctl -u mattermost -f
ss -antpl | grep 8065
mysql -u matteruser -p -e "SHOW TABLES;" matterdb
nginx -t

Альтернативные подходы

  • Использовать PostgreSQL вместо MySQL (рекомендуется в некоторых production-сценариях).
  • Запускать Mattermost в контейнере (Docker) и размещать данные на смонтированных томах.
  • Использовать готовые образы/инструменты оркестрации (Kubernetes) для масштабирования.

Когда этот план может не подойти

  • Если вы хотите полностью облачное решение без управления инфраструктурой — рассмотрите SaaS альтернативы.
  • Для очень больших инсталляций (>1000 активных пользователей) потребуется продвинутая архитектура (балансировщики, кластер БД, масштабируемые сервисы).

Краткое руководство по откату (rollback)

  1. Остановите сервис: systemctl stop mattermost
  2. Восстановите файлы из бэкапа: /opt/mattermost
  3. Восстановите базу данных из дампа
  4. Запустите сервис и проверьте логи

Глоссарий (1‑строчные определения)

  • SiteURL — публичный адрес вашего экземпляра Mattermost.
  • DataSource — строка подключения к СУБД.
  • systemd unit — файл конфигурации сервиса для systemd.

Вывод

Вы установили Mattermost, настроили его на Alma Linux 8 с MySQL и Nginx в роли обратного прокси. Настройте TLS, бэкапы и мониторинг перед вводом в эксплуатацию. Если нужно, помогу с конкретными ошибками или адаптацией под кластер/контейнеры.

Важно: проверьте версии пакетов и совместимость перед обновлением в рабочей среде.

Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро