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

Содержание13 разделов
Инструкция предназначена для системных администраторов и DevOps-инженеров, которые хотят развернуть самохостинговый чат Mattermost на сервере с Ubuntu. В статье описаны шаги установки через официальный PPA, настройка базы PostgreSQL и реверс-прокси NGINX с HTTPS.
1. Обновление системы
Обновите пакеты и систему перед установкой:
sudo apt update && sudo apt -y upgrade2. Установка и настройка PostgreSQL
Mattermost требует PostgreSQL версии 14 или выше. Установите необходимые пакеты:
sudo apt install -y postgresql postgresql-contribПодключитесь к PostgreSQL и создайте базу данных и пользователя:
sudo -u postgres psqlCREATE 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;
\q3. Подключение официального репозитория 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 mattermost4. Установка 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.json6. Запуск и автозапуск
Запустите 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 nginx8. Подключение HTTPS (Let's Encrypt)
Выполните команду для установки сертификата:
sudo certbot --nginx -d chat.example.com9. Создание администратора
Первый пользователь, зарегистрированный через веб-интерфейс, получит права 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.com10. Обновления и удаление
Для обновления Mattermost выполните:
sudo systemctl stop mattermost
sudo apt update && sudo apt -y upgrade
sudo systemctl start mattermostДля удаления приложения:
sudo apt remove --purge mattermost11. Проверка и отладка
Если сервис не запускается или сайт не открывается, используйте следующие команды:
Проверка статуса 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.com12. Полезные команды администрирования
Управление сервисом
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 гарантирует безопасность и доступность сервиса.