Поиск по сайту:

Как установить и настроить Mattermost на CentOS 8


На этой странице

  1. Предпосылки
  2. Установка и настройка базы данных MariaDB
  3. Установить Mattermost
  4. Настроить Mattermost
  5. Создание служебного файла Systemd для Mattermost
  6. Настройка Nginx в качестве обратного прокси-сервера для Mattermost
  7. Настройка SELinux и Firewalld
  8. Доступ к веб-интерфейсу Mattermost
  9. Заключение

Mattermost — это бесплатная корпоративная система обмена сообщениями для совместной работы с открытым исходным кодом и самостоятельным размещением. Он написан на Golang и React и использует MySQL/MariaDB/PostgreSQL в качестве базы данных. Он предлагает настольные клиенты для Windows, macOS и Linux, а также мобильные приложения для iOS и Android. Он очень похож на Slack и объединяет все общение вашей команды в одном месте. Он предлагает очень полезные функции, включая личный и групповой обмен сообщениями, обмен файлами, видеозвонки, настраиваемые смайлики, веб-перехватчики и команды и многое другое.

В этом руководстве мы покажем вам, как установить Mattermost на CentOS 8.

Предпосылки

  • Сервер под управлением CentOS 8.
  • На вашем сервере настроен пароль root.

Установите и настройте базу данных MariaDB

Mattermost использует MariaDB/MySQL в качестве серверной части базы данных. Поэтому MariaDB должен быть установлен на вашем сервере. Если он не установлен, вы можете установить его с помощью следующей команды:

dnf install mariadb-server -y

После установки запустите службу MariaDB и включите ее после перезагрузки системы с помощью следующей команды:

systemctl start mariadb
systemctl enable mariadb

По умолчанию MariaDB не защищена, а пароль root не установлен в CentOS 8. Поэтому вы можете установить его с помощью следующей команды:

mysql_secure_installation

Ответьте на все вопросы, как показано ниже:

Enter current password for root (enter for none):
Set root password? [Y/n] Y
New password:
Re-enter new password:
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

Когда вы закончите, войдите в MariaDB под пользователем root:

mysql -u root -p

Укажите свой пароль root, затем создайте базу данных и пользователя для Mattermost с помощью следующей команды:

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO IDENTIFIED BY 'password';

Затем сбросьте привилегии и выйдите из оболочки MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Как только вы закончите, вы можете перейти к следующему шагу.

Установить Маттермост

Во-первых, вам нужно будет создать отдельного пользователя для запуска Mattermost. Вы можете создать его с помощью следующей команды:

useradd -d /opt/mattermost -U -M mattermost

Затем загрузите последнюю версию Mattermost с помощью следующей команды:

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

После завершения загрузки извлеките загруженный файл с помощью следующей команды:

tar -xvzf mattermost-5.21.0-linux-amd64.tar.gz

Затем переместите извлеченный каталог в /opt с помощью следующей команды:

mv mattermost /opt/

Затем создайте каталог данных внутри наиболее важного и предоставьте соответствующие разрешения для самого важного с помощью следующей команды:

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

Как только вы закончите, вы можете перейти к следующему шагу.

Настроить Mattermost

Далее вам нужно будет определить вашу базу данных в Mattermost. Вы можете сделать это, отредактировав файл config.json:

nano /opt/mattermost/config/config.json

Измените следующие строки в соответствии с настройками вашей базы данных:

  "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mattermost:(localhost:3306)/mattermostdb?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",

Сохраните и закройте файл, когда закончите. Затем измените каталог на /opt/mattermost и запустите сервер Mattermost с помощью следующей команды:

cd /opt/mattermost
sudo -u mattermost bin/mattermost

После успешного запуска сервера вы должны получить следующий вывод:

{"level":"info","ts":1585379681.8383002,"caller":"utils/i18n.go:83","msg":"Loaded system translations","for locale":"en","from locale":"/opt/mattermost/i18n/en.json"}
{"level":"info","ts":1585379681.83874,"caller":"app/server_app_adapters.go:58","msg":"Server is initializing..."}
{"level":"info","ts":1585379681.8470004,"caller":"sqlstore/supplier.go:221","msg":"Pinging SQL","database":"master"}
{"level":"info","ts":1585379684.7858346,"caller":"sqlstore/upgrade.go:112","msg":"The database schema version has been set","version":"5.21.0"}
{"level":"error","ts":1585379690.8182986,"caller":"app/server_app_adapters.go:129","msg":"SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url"}
{"level":"info","ts":1585379690.821083,"caller":"app/license.go:39","msg":"License key from https://mattermost.com required to unlock enterprise features."}

Затем нажмите CTRL + C, чтобы остановить сервер Mattermost.

Создайте служебный файл Systemd для Mattermost

Далее вам нужно будет создать файл службы systemd для управления службой Mattermost. Вы можете создать его с помощью следующей команды:

nano /etc/systemd/system/mattermost.service

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

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

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

[Install]
WantedBy=multi-user.target

Сохраните и закройте файл, когда закончите. Затем перезагрузите демон systemd с помощью следующей команды:

systemctl daemon-reload

Затем запустите службу Mattermost и включите ее запуск после перезагрузки системы с помощью следующей команды:

systemctl start mattermost
systemctl enable mattermost

Вы также можете проверить статус службы Mattermost с помощью следующей команды:

systemctl status mattermost

Вы должны получить следующий результат:

? mattermost.service - Mattermost
   Loaded: loaded (/etc/systemd/system/mattermost.service; disabled; vendor preset: disabled)
   Active: active (running) since Sat 2020-03-28 03:17:07 EDT; 14s ago
 Main PID: 15204 (mattermost)
    Tasks: 21 (limit: 25028)
   Memory: 120.8M
   CGroup: /system.slice/mattermost.service
           ??15204 /opt/mattermost/bin/mattermost
           ??15214 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64

Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131086,"caller":"app/server.go:247","msg":"Printing current workin>
Mar 28 03:17:07 centos8 mattermost[15204]: {"level":"info","ts":1585379827.1131282,"caller":"app/server.go:248","msg":"Loaded config","source">

На данный момент сервер Mattermost работает и прослушивает порт 8065. Вы можете проверить это с помощью следующей команды:

netstat -antup | grep 8065

Вы должны получить следующий результат:

tcp6       0      0 :::8065                 :::*                    LISTEN      15204/mattermost 

Настройте Nginx в качестве обратного прокси-сервера для Mattermost

Рекомендуется установить и настроить Nginx в качестве обратного прокси-сервера для повышения производительности и безопасности.

Сначала установите веб-сервер Nginx с помощью следующей команды:

dnf install nginx -y

После установки веб-сервера Nginx запустите службу Nginx и включите ее запуск после перезагрузки системы с помощью следующей команды:

systemctl start nginx
systemctl enable nginx

Затем создайте новый файл виртуального хоста Nginx для Mattermost с помощью следующей команды:

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

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

upstream mattermost {
   server 127.0.0.1:8065;
   keepalive 32;
}

proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;

server {
   listen 80;
   server_name    mattermost.example.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_pass http://mattermost;
   }
   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       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;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       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://mattermost;
   }
}

Сохраните и закройте файл, когда закончите. Затем проверьте Nginx на наличие синтаксической ошибки с помощью следующей команды:

nginx -t

Вы должны получить следующий результат:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Наконец, перезапустите службу Nginx, чтобы применить изменения:

systemctl restart nginx

На данный момент веб-сервер Nginx настроен для обслуживания Mattermost. Теперь вы можете перейти к следующему шагу.

Настройте SELinux и Firewalld

По умолчанию SELinux включен в CentOS 8. Рекомендуется отключить его для Mattermost. Вы можете отключить его, отредактировав файл /etc/selinux/config:

nano /etc/selinux/config

Найдите следующую строку:

SELINUX=enforcing

И замените его следующей строкой:

SELINUX=permissive

Сохраните и закройте файл, когда закончите. Затем перезагрузите систему, чтобы применить изменения.

Далее вам нужно будет разрешить порт 80 через firewalld. Вы можете разрешить это с помощью следующей команды:

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

Затем перезагрузите firewalld, чтобы применить изменения:

firewall-cmd --reload

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

Теперь откройте веб-браузер и введите URL-адрес http://mattermost.example.com. Вы должны увидеть страницу создания пользователя Mattermost:

Укажите свой адрес электронной почты, имя пользователя, пароль и нажмите кнопку «Создать учетную запись». Вы должны увидеть следующую страницу:

Затем нажмите «Создать новую команду», чтобы создать свою команду. Вы должны увидеть следующую страницу:

Укажите название вашей команды и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Укажите URL-адрес своей команды и нажмите «Готово», чтобы завершить установку. Вы должны увидеть панель инструментов Mattermost на следующей странице:

Заключение

Поздравляем! вы успешно установили и настроили Mattermost на сервере CentOS 8. Теперь вы можете создать команду для своей организации и начать совместную работу с ней.