ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как установить Mattermost на Debian 12

Как установить Mattermost на Debian 12

Система обмена сообщениями Mattermost с открытым исходным кодом предоставляет безопасную и гибкую службу чата с такими функциями, как обмен файлами, функция поиска и интеграции. Благодаря удобному интерфейсу Mattermost прост в использовании и становится все более популярным. Это бесплатная замена таким платформам, как Slack, Microsoft Teams и аналогичным сервисам. В этой статье показано, как установить Mattermost в Debian 12.

 

Необходимые условия для установки Mattermost на Debian 12

 

Соглашения

# – данные команды должны выполняться с правами root либо непосредственно как пользователь root, либо с помощью команды sudo
$ – данные команды должны выполняться как обычный пользователь

 

Шаг 1. Войдите на свой сервер по SSH

Сначала вам нужно будет войти в свой Debian 12 VPS через SSH как пользователь root:

ssh root@IP_Address -p Port_number

 

Вы должны заменить ‘IP_Address’ и ‘Port_number’ на соответствующий IP-адрес вашего сервера и номер порта SSH. Кроме того, замените ‘root’ именем системного пользователя с правами sudo.

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

# lsb_release -a

 

Команда должна возвращать вывод, подобный этому:

No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 12 (bookworm)
Release: 12
Codename: bookworm

 

В этой статье мы используем ‘root’ для выполнения команд командной оболочки. Если вы хотите использовать обычного пользователя с правами sudo для выполнения команд, обязательно добавьте ‘sudo’ перед командами.

 

Шаг 2. Обновите систему

Перед началом работы нам необходимо убедиться, что все пакеты Debian 12, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:

# apt update

 

Список доступных пакетов в системном индексе пакетов обновлен. Давайте перейдем к следующему шагу.

 

Шаг 3. Создание пользователя

Служба Mattermost будет запущена другим системным пользователем, а не root. На этом шаге мы создадим нового системного пользователя под названием “mattermost”. Давайте выполним приведенную ниже команду, вы можете заменить ‘mattermost’ любым именем пользователя, которое вам нравится.

# useradd -mrd /opt/mattermost mattermost -s "$(which bash)"

 

Приведенная выше команда автоматически создаст каталог /opt/mattermost в качестве домашнего каталога для пользователя ‘mattermost’. Мы будем использовать этот каталог в качестве пути установки Mattermost.

 

Шаг 4. Установите PostgreSQL

На данный момент Mattermost поддерживает как PostgreSQL 11.0+, так и MySQL 8.0.12+. На этом этапе мы собираемся установить PostgreSQL в качестве сервера базы данных для Mattermost. Давайте завершим этот шаг, просто выполнив следующую команду:

# apt install postgresql

 

После завершения установки PostgreSQL будет автоматически запущен. Он также настроен на автоматический запуск при перезагрузке сервера.

 

Шаг 5. Создайте базу данных

Далее давайте создадим базу данных PostgreSQL. Сначала нам нужно войти в систему под именем пользователя ‘postgres’, а затем перейти в оболочку PostgreSQL

# su - postgres
$ psql

 

После входа в систему давайте выполним приведенные ниже команды, чтобы создать базу данных, пользователя, а затем предоставить пользователю доступ.

CREATE DATABASE mattermost;
CREATE USER mattermost WITH PASSWORD 'm0d1fyth15';
GRANT ALL ON DATABASE mattermost TO mattermost;
ALTER DATABASE mattermost OWNER TO mattermost;
GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mattermost;

 

Далее завершите работу из оболочки PostgreSQL, затем выйдите из postgres user

\q
$ exit

 

Шаг 6. Загрузите и установите Mattermost

На предыдущем шаге мы создали системного пользователя с именем ‘Mattermost’; давайте перейдем к этой учетной записи пользователя и загрузим Mattermost. Если вы хотите загрузить более свежий пакет tarball, вы можете перейти на их страницу загрузки и получить ссылку для скачивания

# su - mattermost
$ wget https://releases.mattermost.com/9.5.6/mattermost-9.5.6-linux-amd64.tar.gz -O mattermost.tar.gz

 

Установочный файл был загружен и сохранен как mattermost.tar.gz. Теперь давайте распакуем файл.

$ tar -xzvf mattermost.tar.gz --strip-component 1

 

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

$ cp /opt/mattermost/config/config.json{,.orig}

 

Приведенная выше команда предназначена для сохранения копии config.json как config.json.orig. Теперь давайте отредактируем файл config.json для подключения к базе данных PostgreSQL.

$ nano /opt/mattermost/config/config.json

 

Настройте следующие свойства в этом файле:

Set DataSource to "dbuser:@:3306/dbname?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",

 

замените dbuser, dbpassword вашими dbuser и dbpassword, которые вы создали на предыдущем шаге. В этом случае это будет:

"DataSource": "postgres://mattermost:m0d1fyth15@localhost/mattermost?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes",

 

Задайте свой “SiteURL”: доменное имя для приложения Mattermost (например, https://mattermost.yourdomain.com).

сохраните файл, затем выйдите из редактора nano, затем выйдите из пользователя mattermost

$ exit

 

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

На этом шаге мы создадим файл systemd service для управления нашим сервисом Mattermost. Давайте сейчас создадим файл systemd service для Mattermost.

# nano /etc/systemd/system/mattermost.service

 

Вставьте следующее в служебный файл systemd, затем сохраните его.

[Unit]
Description=Mattermost
After=network.target

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

[Install]
WantedBy=multi-user.target

 

Сохраните файл, завершите работу, а затем перезагрузите systemd, чтобы изменения вступили в силу.

# systemctl daemon-reload

 

Далее давайте разрешим Mattermost запускаться при загрузке и запустим службу сейчас.

# systemctl enable --now mattermost

 

Приведенная выше команда вернет результат, подобный этому:

Created symlink /etc/systemd/system/multi-user.target.wants/mattermost.service → /etc/systemd/system/mattermost.service.

 

На этом этапе Mattermost должен быть запущен, и он автоматически запустится при загрузке. Для проверки выполните эту команду:

# systemctl status mattermost

 

Вы увидите результат, подобный этому

● mattermost.service - Mattermost
     Loaded: loaded (/etc/systemd/system/mattermost.service; enabled; preset: enabled)
     Active: active (running) since Wed 2024-06-19 06:47:49 CDT; 2min 4s ago
   Main PID: 6289 (mattermost)
      Tasks: 38 (limit: 4644)
     Memory: 328.8M
        CPU: 26.288s
     CGroup: /system.slice/mattermost.service
             ├─6289 /opt/mattermost/bin/mattermost
             ├─6314 plugins/com.mattermost.nps/server/dist/plugin-linux-amd64
             ├─6323 plugins/com.mattermost.calls/server/dist/plugin-linux-amd64
             └─6331 plugins/playbooks/server/dist/plugin-linux-amd64

Jun 19 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.957 -04:00","level":"info","msg":"got public IP address for>
Jun 19 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.957 -04:00","level":"info","msg":"rtc: server is listening >
Jun 19 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.959 -04:00","level":"info","msg":"rtc: server is listening >
Jun 19 21:18:01 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:01.961 -04:00","level":"info","msg":"Listening TCP on 0.0.0.0:>
Jun 19 21:18:02 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:02.660 -04:00","level":"info","msg":"Starting Server...","call>
Jun 19 21:18:02 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:02.664 -04:00","level":"info","msg":"Server is listening on [:>
Jun 19 21:18:02 localhost.localdomain mattermost[55973]: {"timestamp":"2023-09-14 21:18:02.664 -04:00","level":"info","msg":"Sending systemd READY not>
Jun 19 21:18:02 localhost.localdomain systemd[1]: Started Mattermost.

 

Вы должны иметь доступ к Mattermost по адресу http://YOUR_SERVER_IP_ADDRESS:8065

Как установить Mattermost на Debian 12

 

Шаг 8. Установите и настройте Nginx

На предыдущем шаге нам удалось получить доступ к Mattermost по адресу http://YOUR_SERVER_IP_ADDRESS:8065. Чтобы получить доступ к Mattermost через домен или поддомен без использования порта в конце URL-адреса, нам необходимо установить и настроить обратный прокси. Давайте установим и настроим nginx.

# apt install nginx -y

 

После установки мы можем создать серверный блок nginx для нашего веб-сайта Mattermost.

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

 

Затем вставьте в файл следующее.

upstream backend {
    server 127.0.0.1:8065;
}

server {
  listen 80;
  server_name   mattermost.yourdomain.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_http_version 1.1;
       proxy_pass http://backend;
   }

   location / {
       client_max_body_size 50M;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       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

# systemctl restart nginx

 

Вот и все, вы должны получить доступ к Mattermost по адресу http://mattermost.yourdomain.com сейчас.

Как установить Mattermost на Debian 12

 

Поздравляем! Вы узнали, как установить Mattermost на Debian 12

Если вы следили за этой статьей, и теперь вы успешно установили Mattermost на свой сервер Debian 12.

Если вам понравился этот пост о том, как установить Mattermost на Debian 12, пожалуйста, поделитесь им со своими друзьями и оставьте комментарий ниже. Спасибо.

Exit mobile version