Mattermost — это платформа для корпоративного общения с открытым исходным кодом, предназначенная для внутренней коммуникации команд и организаций. Она поддерживает текстовые чаты, обмен файлами, видеозвонки и интеграцию с различными сторонними сервисами. Mattermost может быть развернут на собственных серверах для полного контроля над данными и обеспечения безопасности. Это альтернатива таким решениям, как Slack, с возможностью настройки, автоматизации и интеграции с DevOps-процессами.
Для начала вам нужно подключиться к вашему серверу через SSH под пользователем root. Выполните следующую команду, заменив IP_Address на IP-адрес вашего сервера, а Port_number — на номер порта SSH:
ssh root@IP_Address -p Port_number
Чтобы убедиться, что у вас установлена правильная версия Ubuntu, выполните команду:
lsb_release -a
Ожидаемый результат:
Distributor ID: Ubuntu
Description: Ubuntu 24.04 LTS
Release: 24.04
Codename: noble
Обновляем ОС:
apt update
apt upgrade
Теперь создадим базу данных PostgreSQL для использования сервером Mattermost. Введите команду (эта команда установит postgresql):
apt install postgresql
Заходим в PostgreSQL:
sudo -u postgres psql
Создаем базу Mattermost:
CREATE DATABASE mattermost;
Создаем пользователя mmuser (вместо пароля mmuser-password
используем более защищенный пароль):
CREATE USER mmuser WITH PASSWORD 'mmuser-password';
Наделяем пользователя mmuser правами:
GRANT ALL PRIVILEGES ON DATABASE mattermost to mmuser;
GRANT ALL ON DATABASE mattermost TO mmuser;
ALTER DATABASE mattermost OWNER TO mmuser;
GRANT USAGE, CREATE ON SCHEMA PUBLIC TO mmuser;
Выходим из PostgreSQL
\q
Вносим изменения в файл pg_hba.conf предоставляя Mattermost серверу доступ к базе PostgreSQL.
Открываем файл:
nano /etc/postgresql/16/main/pg_hba.conf
Находим строки:
local all all peer
host all all 127.0.0.1/32 scram-sha-256
host all all ::1/128 scram-sha-256
Заменяем на:
local all all trust
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
Сохраняем изменения, закрываем файл и обновляем конфигурацию PostgreSQL:
systemctl reload postgresql
Проверяем, что можем подключиться к базе от пользователя mmuser:
psql --dbname=mattermost --username=mmuser --password
Вводим пароль, который мы создали вместо mmuser-password
Если мы все сделали правильно - появится консоль PostgreSQL mattermost=>
Выходим:
\q
Скачиваем последнюю версию Mattermost сервера:
wget https://releases.mattermost.com/10.0.1/mattermost-10.0.1-linux-amd64.tar.gz
Распаковываем:
tar -xvzf mattermost*.gz
Переносим в директорию /opt:
mv mattermost /opt
По умолчанию Mattermost сервер использует директорию /opt/mattermost/data
Создаём её:
mkdir /opt/mattermost/data
Теперь создадим группу и пользователя mattermost:
useradd --system --user-group mattermost
Предоставим права:
chown -R mattermost:mattermost /opt/mattermost
chmod -R g+w /opt/mattermost
Чтобы управлять сервером Mattermost, создадим системный сервис.
Откройте редактор для создания файла сервиса:
nano /lib/systemd/system/mattermost.service
Открывшийся, пустой файл - заполняем следующим содержимым:
[Unit]
Description=Mattermost
After=network.target
After=postgresql.service
BindsTo=postgresql.service
[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 сервера, необходимо сконфигурировать его.
Создайте резервную копию конфигурационного файла:
cp /opt/mattermost/config/config.json /opt/mattermost/config/config.defaults.json
Откройте в текстовом редакторе файл конфигурации Mattermost сервера:
nano /opt/mattermost/config/config.json
Нам необходимо внести изменения.
Найдите:
"DataSource": "postgres://mmuser:@localhost/mattermost_test?sslmode=disable\u0026connect_timeout=10\u0026binary_parameters=yes"
Замените на:
"DataSource to "postgres://mmuser: <mmuser-password>@<host-name-or-IP>:5432/<mattermost>?sslmode=disable&connect_timeout=10"
Где
<mmuser-password>
- пароль mmuser для PostgreSQL.
<host-name-or-IP>
- IP адрес сервера или его hostname.
<mattermost>
- база PostgreSQL.
Сохраните файл и выйдите из редактора.
Активируйте сервис, чтобы он запускался при старте системы, и запустите его сейчас:
systemctl enable --now mattermost
Для проверки статуса сервера используйте команду:
systemctl status mattermost
Откройте в браузере <IP адрес вашего сервера или его hostname>: 8065
Следуйте инструкциям на открывшейся странице.
Теперь Mattermost сервер установлен и работает на вашем сервере Ubuntu 24.04.