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

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

 

В этом руководстве мы покажем вам, как установить Mattermost на CentOS 8. Для тех из вас, кто не знал, Mattermost — это альтернатива Slack для частного облака с открытым исходным кодом. Система обмена сообщениями на рабочем месте для Интернета, компьютеров и телефонов, выпущенная по лицензии MIT. В качестве альтернативы проприетарному обмену сообщениями SaaS, Mattermost объединяет всю вашу командную коммуникацию в одном месте, что делает ее доступной для поиска в любом месте. Mattermost является «Slack-совместимым, но не ограниченным Slack», поддерживая расширенный набор интеграций входящих и исходящих веб-перехватчиков Slack, включая совместимость с существующими интеграциями Slack. Из ваших существующих команд Slack вы можете импортировать пользователей, историю общедоступных каналов и даже цвета настройки тем в Mattermost.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo‘ к командам для получения привилегий root. Я покажу вам пошаговую установку Mattermost на CentOS 8.

Установите Mattermost на CentOS 8

Шаг 1. Во-первых, давайте начнем с проверки актуальности вашей системы.

sudo dnf clean all
sudo dnf install epel-release
sudo dnf update

Шаг 2. Установка сервера базы данных.

Выполните следующую команду, чтобы установить MariaDB:

sudo dnf install mariadb-server

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

mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Set root password? [Y/n] y
New password:
Re-enter new password:
Password updated successfully!
Reloading privilege tables..
 ... Success!

Remove anonymous users? [Y/n] y
 ... Success!

Disallow root login remotely? [Y/n] y
 ... Success!

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...
Thanks for using MariaDB!

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

sudo systemctl restart mariadb
sudo systemctl status mariadb
sudo systemctl enable mariadb

После установки базы данных войдите в оболочку MariaDB и создайте базу данных и пользователя для Mattermost:

$ mysql -u root -p
CREATE DATABASE mattermost;
GRANT ALL PRIVILEGES ON mattermost.* TO mattermost@localhost IDENTIFIED BY 'Your-Strong-Passwd';
FLUSH PRIVILEGES;
QUIT;

Шаг 3. Установка Mattermost на CentOS 8.

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

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

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

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

Распакуйте архив Mattermost в корневой каталог документов на вашем сервере:

tar xf *.gz
mv mattermost /opt/

Создайте каталог для хранения файлов:

mkdir /opt/mattermost/data

Также установите владельца и разрешения:

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

Затем нам нужно настроить драйвер базы данных в файле , внеся некоторые изменения в его содержимое. Найдите строки « DriverName » и « DataSource » и измените их следующим образом:/opt/mattermost/config/config.json

nano /opt/mattermost/config/config.json
"SqlSettings": {
        "DriverName": "mysql",
        "DataSource": "mattermost:Str0ngP@ss@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
        "DataSourceReplicas": [],
        "DataSourceSearchReplicas": [],
        "MaxIdleConns": 20,
        "ConnMaxLifetimeMilliseconds": 3600000,
        "MaxOpenConns": 300,
        "Trace": false,
        "AtRestEncryptKey": "myyti1r597i99qrk7eu91ywqhaawz4md",
        "QueryTimeout": 30
    },

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

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

Шаг 4. Настройте службу Mattermost Systemd.

Сначала мы создадим новый файл модуля systemd, используя следующую команду:

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

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

sudo systemctl daemon-reload
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service

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

curl http://localhost:8065

Шаг 5. Настройка Nginx с помощью Mattermost.

Установите и настройте Nginx как обратный прокси-сервер для повышения производительности и безопасности. Теперь устанавливаем Nginx в систему CentOS:

sudo dnf install nginx

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

sudo systemctl start nginx
sudo systemctl enable nginx

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

sudo nano /etc/nginx/conf.d/mattermost.conf
upstream backend {
   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://backend;
   }

   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://backend;
   }
}

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

nginx -t
sudo systemctl restart nginx

Шаг 6. Настройте брандмауэр.

Разрешите брандмауэру доступ к портам http и https:

sudo firewall-cmd --add-service={http,https} --permanent
sudo firewall-cmd --reload

Шаг 7. Доступ к веб-интерфейсу Mattermost.

По умолчанию Mattermost будет доступен через HTTP-порт 80. Откройте свой любимый браузер, перейдите к Mattermost и продолжите настройку, введя адрес электронной почты и создав учетную запись.http://mattermost.example.com

Поздравляю! Вы успешно установили Mattermost . Благодарим за использование этого руководства для установки Mattermost в системе CentOS 8. Для получения дополнительной помощи или полезной информации мы рекомендуем вам посетить официальный сайт Mattermost .