Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Установка Mattermost на Ubuntu через PPA

Linux и DevOps

Инструкция предназначена для системных администраторов и DevOps-инженеров, которые хотят развернуть самохостинговый чат Mattermost на сервере с Ubuntu. В статье описаны шаги установки через официальный PPA, настройка базы PostgreSQL и реверс-прокси NGINX с HTTPS.

1. Обновление системы

Обновите пакеты и систему перед установкой:

sudo apt update && sudo apt -y upgrade

2. Установка и настройка PostgreSQL

Mattermost требует PostgreSQL версии 14 или выше. Установите необходимые пакеты:

sudo apt install -y postgresql postgresql-contrib

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

sudo -u postgres psql
CREATE DATABASE mattermost;
CREATE USER mmuser WITH PASSWORD 'StrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost TO mmuser;

\c mattermost
ALTER SCHEMA public OWNER TO mmuser;
GRANT ALL PRIVILEGES ON ALL TABLES    IN SCHEMA public TO mmuser;
GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA public TO mmuser;

\q

3. Подключение официального репозитория Mattermost

Удалите старый ключ (если был) и добавьте новый с помощью скрипта установки:

sudo rm -f /usr/share/keyrings/mattermost-archive-keyring.gpg
curl -sL -o- https://deb.packages.mattermost.com/pubkey.gpg \
  | gpg --dearmor \
  | sudo tee /usr/share/keyrings/mattermost-archive-keyring.gpg >/dev/null

curl -o- https://deb.packages.mattermost.com/repo-setup.sh | sudo bash -s mattermost

4. Установка Mattermost

sudo apt update
sudo apt install -y mattermost

Файлы будут установлены в /opt/mattermost, создан пользователь mattermost и systemd-юнит, пока не активированный.

5. Настройка конфигурации

Скопируйте дефолтный конфиг и задайте права:

sudo install -C -m 600 -o mattermost -g mattermost \
  /opt/mattermost/config/config.defaults.json \
  /opt/mattermost/config/config.json

Откройте конфигурационный файл для редактирования:

sudo nano /opt/mattermost/config/config.json

Измените параметры подключения и URL:

"ServiceSettings": {
    "SiteURL": "https://chat.example.com",
    "ListenAddress": ":8065"
},
"SqlSettings": {
    "DriverName": "postgres",
    "DataSource": "postgres://mmuser:StrongPassword123!@localhost:5432/mattermost?sslmode=disable&connect_timeout=10"
}

Проверьте синтаксис файла:

jq . /opt/mattermost/config/config.json

6. Запуск и автозапуск

Запустите Mattermost и включите автозагрузку:

sudo systemctl start mattermost
sudo systemctl enable mattermost
curl -I http://localhost:8065

Если в ответе отображаются заголовки HTTP, сервис работает корректно.

7. Установка и настройка NGINX

Установите веб-сервер NGINX:

sudo apt install -y nginx

Создайте конфигурацию сайта:

sudo nano /etc/nginx/sites-available/mattermost

Пример содержимого:

server {
    listen 80;
    server_name chat.example.com;

    location / {
        proxy_pass         http://127.0.0.1:8065;
        proxy_set_header   Host               $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;
        client_max_body_size 100M;
    }
}

Активируйте конфигурацию и перезапустите NGINX:

sudo rm -f /etc/nginx/sites-enabled/default
sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost
sudo nginx -t
sudo systemctl restart nginx

8. Подключение HTTPS (Let’s Encrypt)

Выполните команду для установки сертификата:

sudo certbot --nginx -d chat.example.com

9. Создание администратора

Первый пользователь, зарегистрированный через веб-интерфейс, получит права System Admin.

Также можно создать администратора через CLI:

/opt/mattermost/bin/mmctl user create --email admin@example.com --username admin --password 'StrongPass123!'
/opt/mattermost/bin/mmctl user make-system-admin admin@example.com

10. Обновления и удаление

Для обновления Mattermost выполните:

sudo systemctl stop mattermost
sudo apt update && sudo apt -y upgrade
sudo systemctl start mattermost

Для удаления приложения:

sudo apt remove --purge mattermost

11. Проверка и отладка

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

Проверка статуса Mattermost

sudo systemctl status mattermost --no-pager
journalctl -u mattermost -n 50 --no-pager

Проверка PostgreSQL

sudo -u postgres psql -d mattermost -c '\dt'

Проверка Nginx

sudo nginx -t
sudo systemctl status nginx --no-pager

Проверка портов

ss -tulpn | grep 8065
ss -tulpn | grep 443

Проверка доступности

curl -I http://localhost:8065
curl -I https://chat.example.com

12. Полезные команды администрирования

Управление сервисом

sudo systemctl start mattermost
sudo systemctl stop mattermost
sudo systemctl restart mattermost
sudo systemctl enable mattermost
sudo systemctl disable mattermost

Проверка логов

journalctl -u mattermost -n 100 --no-pager

Работа с mmctl

/opt/mattermost/bin/mmctl version
/opt/mattermost/bin/mmctl user list
/opt/mattermost/bin/mmctl user create --email user@example.com --username user --password 'Pass123!'
/opt/mattermost/bin/mmctl user make-system-admin user@example.com
/opt/mattermost/bin/mmctl team create --name myteam --display_name "My Team"
/opt/mattermost/bin/mmctl channel create --team myteam --name mychannel --display_name "My Channel"

Работа с конфигурацией

/opt/mattermost/bin/mmctl config set ServiceSettings.SiteURL "https://chat.example.com"
/opt/mattermost/bin/mmctl config get SqlSettings.DriverName

Заключение

Mattermost обеспечивает надёжную корпоративную коммуникацию и легко разворачивается на собственных серверах. Использование официального репозитория и systemd упрощает администрирование, а интеграция с NGINX и Let’s Encrypt гарантирует безопасность и доступность сервиса.

Оцените статью
ctrllife.ru
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x