Система обмена сообщениями Mattermost с открытым исходным кодом предоставляет безопасную и гибкую службу чата с такими функциями, как обмен файлами, функция поиска и интеграции. Благодаря удобному интерфейсу Mattermost прост в использовании и становится все более популярным. Это бесплатная замена таким платформам, как Slack, Microsoft Teams и аналогичным сервисам. В этой статье показано, как установить Mattermost в Debian 12.
# – данные команды должны выполняться с правами root либо непосредственно как пользователь root, либо с помощью команды sudo $ – данные команды должны выполняться как обычный пользователь
Сначала вам нужно будет войти в свой 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’ перед командами.
Перед началом работы нам необходимо убедиться, что все пакеты Debian 12, установленные на сервере, обновлены. Вы можете сделать это, выполнив следующие команды:
# apt update
Список доступных пакетов в системном индексе пакетов обновлен. Давайте перейдем к следующему шагу.
Служба Mattermost будет запущена другим системным пользователем, а не root. На этом шаге мы создадим нового системного пользователя под названием “mattermost”. Давайте выполним приведенную ниже команду, вы можете заменить ‘mattermost’ любым именем пользователя, которое вам нравится.
# useradd -mrd /opt/mattermost mattermost -s "$(which bash)"
Приведенная выше команда автоматически создаст каталог /opt/mattermost в качестве домашнего каталога для пользователя ‘mattermost’. Мы будем использовать этот каталог в качестве пути установки Mattermost.
На данный момент Mattermost поддерживает как PostgreSQL 11.0+, так и MySQL 8.0.12+. На этом этапе мы собираемся установить PostgreSQL в качестве сервера базы данных для Mattermost. Давайте завершим этот шаг, просто выполнив следующую команду:
# apt install postgresql
После завершения установки PostgreSQL будет автоматически запущен. Он также настроен на автоматический запуск при перезагрузке сервера.
Далее давайте создадим базу данных 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
На предыдущем шаге мы создали системного пользователя с именем ‘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
На этом шаге мы создадим файл 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 по адресу 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, пожалуйста, поделитесь им со своими друзьями и оставьте комментарий ниже. Спасибо.