Как установить Mattermost на Ubuntu 20.04 LTS

Как установить Mattermost на Ubuntu 20.04 LTS

 

В этом руководстве мы покажем вам, как установить Mattermost на Ubuntu 20.04 LTS. Для тех из вас, кто не знал, Mattermost — это приложение для обмена сообщениями с открытым исходным кодом, которое используется для чата, обмена файлами, поиска и интеграции, написанное на Golang и React. Это альтернатива Slack и предоставляет сервис чата с обменом файлами, поиском и интеграцией. Он разработан для организаций и компаний и позволяет командам безопасно общаться и сотрудничать отовсюду.

В этой статье предполагается, что у вас есть хотя бы базовые знания Linux, вы знаете, как использовать оболочку, и, что наиболее важно, вы размещаете свой сайт на собственном VPS. Установка довольно проста и предполагает, что вы работаете с учетной записью root, в противном случае вам может потребоваться добавить ‘ sudo‘ к командам для получения привилегий root. Я покажу вам пошаговую установку Mattermost на Ubuntu 20.04 (Focal Fossa). Вы можете следовать тем же инструкциям для Ubuntu 18.04, 16.04 и любого другого дистрибутива на основе Debian, например Linux Mint.

Установите Mattermost на Ubuntu 20.04 LTS Focal Fossa

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

sudo apt update
sudo apt upgrade

Шаг 2. Установка стека LEMP.

Требуется сервер Ubuntu 20.04 LEMP. Если у вас не установлен LEMP, вы можете следовать нашему руководству здесь .

Шаг 3. Установка Mattermost на Ubuntu 20.04.

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

useradd --system --user-group mattermost

Теперь скачиваем последнюю версию Mattermost с официального сайта:

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

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

tar -xvzf mattermost-5.28.1-linux-amd64.tar.gz
mv mattermost /opt/
mkdir /opt/mattermost/data

Нам нужно будет изменить права доступа к некоторым папкам:

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

После этого отредактируйте файл конфигурации Mattermost и определите URL вашего сайта и настройки базы данных:

nano /opt/mattermost/config/config.json

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

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

"DriverName": "mysql",
"DataSource": "mattermost:secure-your-password@tcp(localhost:3306)/mattermostdb?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

Шаг 4. Настройка MariaDB для Mattermost.

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

mysql_secure_installation

Настройте это так:

- Set root password? [Y/n] y
- 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 и создать базу данных для Mattermost. Выполните следующую команду:

mysql -u root -p

Вам будет предложено ввести пароль, поэтому введите свой корневой пароль MariaDB и нажмите Enter. После входа на сервер базы данных вам необходимо создать базу данных для установки Mattermost:

MariaDB [(none)]> CREATE DATABASE mattermostdb;
MariaDB [(none)]> CREATE USER 'mattermost'@'%' IDENTIFIED BY 'your-secure-password';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON mattermostdb.* TO 'mattermost'@'%';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

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

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

nano /lib/systemd/system/mattermost.service

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

[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=notify
User=mattermost
Group=mattermost
ExecStart=/opt/mattermost/bin/mattermost
TimeoutStartSec=3600
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
LimitNOFILE=49152

[Install]
WantedBy=mariadb.service

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

sudo systemctl daemon-reload
sudo systemctl start mattermost
sudo systemctl enable mattermos

Шаг 6. Настройте Nginx в качестве обратного прокси.

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

nano /etc/nginx/sites-available/mattermost.conf

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

upstream mattermost {
   server localhost: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.infoit.com.ua;

   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 65;
       send_timeout 200;
       lingering_timeout 5;
       proxy_connect_timeout 80;
       proxy_send_timeout 300;
       proxy_read_timeout 80s;
       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;
   }
}

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

ln -s /etc/nginx/sites-available/mattermost.conf /etc/nginx/sites-enabled/mattermost.conf
sudo systemctl restart nginx

Шаг 7. Настройте HTTPS.

Мы должны включить безопасное соединение HTTPS в Nextcloud. Мы можем получить бесплатный сертификат TLS от Let’s Encrypt. Установите клиент Let’s Encrypt (Certbot) из репозитория Ubuntu 20.04:

sudo apt install python3-certbot-nginx

Затем выполните следующую команду, чтобы установить Let’s Encrypt SSL для вашего веб-сайта:

certbot --nginx -d mattermost.infoit.com.ua

Если проверка прошла успешно, перезагрузите Nginx, чтобы изменения вступили в силу:

sudo nginx -t
sudo systemctl restart nginx

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

Выполните следующую команду, чтобы открыть порты служб HTTP и HTTPS:

sudo ufw allow 'Nginx Full'

Шаг 9. Доступ к Mattermost.

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

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