Як встановити Mattermost на Ubuntu: повний покроковий посібник
Mattermost — це потужна, відкрита платформа для обміну повідомленнями та командної співпраці, яка дає організаціям повний контроль над своєю комунікаційною інфраструктурою. Як самостійна альтернатива Slack та Microsoft Teams, Mattermost пропонує безпеку рівня підприємства, повне володіння даними та широкі можливості налаштування — все без повторюваних витрат на SaaS-підписку.
Цей комплексний посібник проведе вас через кожен крок встановлення та налаштування Mattermost на сервері Ubuntu, включаючи налаштування бази даних PostgreSQL, конфігурацію зворотного проксі Nginx та інтеграцію SSL-сертифіката.
Зміст
- Передумови
- Оновлення вашої системи
- Встановлення необхідних залежностей
- Завантаження та встановлення Mattermost
- Налаштування бази даних PostgreSQL
- Налаштування Mattermost
- Створення служби Systemd
- Налаштування Nginx як зворотного проксі
- Захист Mattermost за допомогою SSL (HTTPS)
- Остаточна перевірка
1. Передумови
Перед початком переконайтеся, що виконані такі вимоги:
- Сервер, на якому працює Ubuntu 20.04 або Ubuntu 22.04 LTS (Ubuntu 18.04 більше не підтримується і не рекомендується для виробничих середовищ)
- Привілеї sudo або root на сервері
- Доменне ім’я, спрямоване на IP-адресу вашого сервера (настійно рекомендується для виробничих розгортань)
- Мінімальне обладнання: 1 vCPU, 2 GB RAM, 10 GB дискового простору (для малих команд); збільшуйте для більших розгортань
> Порада щодо хостингу: Для плавного розгортання Mattermost розглядайте надійний план VPS Hosting від AlexHost. З SSD-сховищем, повним доступом root та гарантованою доступністю, VPS-екземпляри AlexHost ідеальні для самостійно розміщених інструментів співпраці.
2. Оновлення вашої системи
Завжди починайте з оновлення індексу пакетів та застосування всіх очікуючих оновлень безпеки та системи:
sudo apt update
sudo apt upgrade -yПерезавантажте сервер, якщо було застосовано оновлення ядра:
sudo reboot3. Встановлення необхідних залежностей
Mattermost залежить від трьох ключових компонентів: PostgreSQL (база даних), Nginx (зворотний проксі) та Certbot (управління SSL-сертифікатами).
Встановіть усі необхідні пакети за один раз:
sudo apt install -y postgresql postgresql-contrib
sudo apt install -y nginx
sudo apt install -y certbot python3-certbot-nginxПеревірте, що PostgreSQL та Nginx працюють:
sudo systemctl status postgresql
sudo systemctl status nginxОбидві служби мають показувати active (running).
4. Завантаження та встановлення Mattermost
Крок 1: Завантажте останній випуск Mattermost
Відвідайте офіційну сторінку випусків Mattermost, щоб знайти останню стабільну версію. Використовуйте wget для прямого завантаження на ваш сервер:
wget https://releases.mattermost.com/9.5.0/mattermost-team-9.5.0-linux-amd64.tar.gz> Примітка: Замініть 9.5.0 на номер останньої доступної версії. Завжди використовуйте найновіший стабільний випуск для патчів безпеки та нових функцій.
Крок 2: Розпакуйте архів
tar -xvzf mattermost-team-9.5.0-linux-amd64.tar.gzКрок 3: Перемістіть Mattermost у системний каталог
Перемістіть розпакований папку в /opt, що є стандартним розташуванням Linux для додаткового стороннього програмного забезпечення:
sudo mv mattermost /opt/mattermostКрок 4: Створіть виділеного системного користувача Mattermost
Запуск Mattermost як виділеного непривілейованого користувача — це критична найкраща практика безпеки:
sudo useradd -r -m -d /opt/mattermost -s /bin/false mattermostКрок 5: Створіть каталог даних та встановіть дозволи
sudo mkdir -p /opt/mattermost/data
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R 750 /opt/mattermost5. Налаштування бази даних PostgreSQL
Mattermost вимагає виділеної бази даних PostgreSQL та користувача. Уважно виконайте ці кроки.
Крок 1: Перейдіть на системного користувача PostgreSQL
sudo -i -u postgresКрок 2: Відкрийте інтерактивну оболонку PostgreSQL
psqlКрок 3: Створіть базу даних, користувача та надайте привілеї
Виконайте такі SQL-команди одну за одною:
CREATE DATABASE mattermost_db;
CREATE USER mattermost WITH PASSWORD 'YourStrongPassword123!';
GRANT ALL PRIVILEGES ON DATABASE mattermost_db TO mattermost;> Примітка безпеки: Замініть YourStrongPassword123! на надійний, унікальний пароль. Використовуйте менеджер паролів для його генерування та безпечного зберігання.
Для PostgreSQL 15 та пізніших версій вам також потрібно надати привілеї схеми:
c mattermost_db
GRANT ALL ON SCHEMA public TO mattermost;Крок 4: Вийдіть з оболонки PostgreSQL та повертайтеся до свого користувача
q
exit6. Налаштування Mattermost
Крок 1: Відкрийте файл конфігурації Mattermost
sudo nano /opt/mattermost/config/config.jsonКрок 2: Оновіть параметри підключення до бази даних
Знайдіть блок SqlSettings та оновіть його своїми обліковими даними PostgreSQL:
"SqlSettings": {
"DriverName": "postgres",
"DataSource": "postgres://mattermost:YourStrongPassword123!@localhost:5432/mattermost_db?sslmode=disable&connect_timeout=10",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
"ConnMaxLifetimeMilliseconds": 3600000,
"MaxOpenConns": 300,
"Trace": false,
"AtRestEncryptKey": "",
"QueryTimeout": 30
}Крок 3: Налаштуйте URL сайту
Знайдіть блок ServiceSettings та встановіть вашу доменну назву:
"ServiceSettings": {
"SiteURL": "https://your_domain.com",
...
}Замініть your_domain.com на вашу фактичну доменну назву.
Крок 4: Збережіть та вийдіть
Натисніть Ctrl+X, потім Y, потім Enter для збереження та закриття файлу.
7. Створення служби Systemd
Запуск Mattermost як служби systemd забезпечує його автоматичний запуск під час завантаження та перезапуск при збої — це необхідно для будь-якого виробничого розгортання.
Крок 1: Створіть файл служби
sudo nano /etc/systemd/system/mattermost.serviceКрок 2: Додайте конфігурацію служби
Вставте такий вміст:
[Unit]
Description=Mattermost Team Messaging Server
After=network.target postgresql.service
Wants=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Крок 3: Увімкніть та запустіть службу Mattermost
sudo systemctl daemon-reload
sudo systemctl enable mattermost
sudo systemctl start mattermostКрок 4: Перевірте, що служба працює
sudo systemctl status mattermostВи повинні побачити active (running). Mattermost за замовчуванням прослуховує порт 8065.
8. Налаштування Nginx як зворотного проксі
Nginx діє як зворотний проксі, перенаправляючи вхідний трафік HTTP/HTTPS з портів 80/443 на внутрішній порт 8065 Mattermost. Це також дозволяє підтримку WebSocket, яка потрібна Mattermost для обміну повідомленнями в реальному часі.
Крок 1: Створіть файл конфігурації Nginx
sudo nano /etc/nginx/sites-available/mattermostКрок 2: Додайте конфігурацію зворотного проксі
upstream backend {
server localhost:8065;
keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
listen 80;
server_name your_domain.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;
proxy_read_timeout 600s;
proxy_pass http://backend;
}
location / {
client_max_body_size 50M;
proxy_set_header Connection "";
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;
proxy_read_timeout 600s;
proxy_cache mattermost_cache;
proxy_cache_revalidate on;
proxy_cache_min_uses 2;
proxy_cache_use_stale timeout;
proxy_cache_lock on;
proxy_pass http://backend;
}
}Замініть your_domain.com на вашу фактичну доменну назву.
Крок 3: Увімкніть конфігурацію сайту
sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/Крок 4: Перевірте конфігурацію Nginx на синтаксичні помилки
sudo nginx -tОчікуваний результат:
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulКрок 5: Перезапустіть Nginx
sudo systemctl restart nginx9. Захист Mattermost за допомогою SSL (HTTPS)
Запуск Mattermost через HTTPS обов’язковий для будь-якого виробничого середовища. Це шифрує весь зв’язок між користувачами та вашим сервером, захищаючи облікові дані та повідомлення від перехоплення.
> SSL спрощено: AlexHost пропонує доступні SSL-сертифікати для всіх типів веб-сайтів та додатків. Крім того, використовуйте безплатний метод Let’s Encrypt нижче.
Крок 1: Отримайте безплатний SSL-сертифікат за допомогою Certbot
sudo certbot --nginx -d your_domain.comCertbot автоматично:
- Перевірить право власності на доменну назву
- Видасть сертифікат Let’s Encrypt
- Змінить вашу конфігурацію Nginx для включення HTTPS
- Налаштує автоматичне поновлення сертифіката
Крок 2: Перевірте автоматичне поновлення
sudo certbot renew --dry-runКрок 3: Перезапустіть Nginx
sudo systemctl restart nginxВаш екземпляр Mattermost тепер доступний за адресою https://your_domain.com.
