Инструкция предназначена для системных администраторов и DevOps-инженеров, которые хотят развернуть самохостинговый чат Mattermost на сервере с Ubuntu. В статье описаны шаги установки через официальный PPA, настройка базы PostgreSQL и реверс-прокси NGINX с HTTPS.
- 1. Обновление системы
- 2. Установка и настройка PostgreSQL
- 3. Подключение официального репозитория Mattermost
- 4. Установка Mattermost
- 5. Настройка конфигурации
- 6. Запуск и автозапуск
- 7. Установка и настройка NGINX
- 8. Подключение HTTPS (Let’s Encrypt)
- 9. Создание администратора
- 10. Обновления и удаление
- 11. Проверка и отладка
- Проверка статуса Mattermost
- Проверка PostgreSQL
- Проверка Nginx
- Проверка портов
- Проверка доступности
- 12. Полезные команды администрирования
- Управление сервисом
- Проверка логов
- Работа с mmctl
- Работа с конфигурацией
- Заключение
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 гарантирует безопасность и доступность сервиса.









