Як встановити Mattermost на Ubuntu: Повний покроковий посібник
Mattermost — це потужна платформа для обміну повідомленнями та командної співпраці з відкритим вихідним кодом, яка надає організаціям повний контроль над своєю інфраструктурою комунікацій. Як самостійно розміщена альтернатива Slack та Microsoft Teams, Mattermost пропонує безпеку корпоративного рівня, повне володіння даними та широкі можливості налаштування — все без повторюваних витрат на підписку SaaS.
Цей комплексний посібник проведе вас через кожен крок встановлення та налаштування Mattermost на сервері Ubuntu, включаючи налаштування бази даних PostgreSQL, конфігурацію зворотного проксі Nginx та інтеграцію SSL-сертифіката.
1. Передумови
Перед тим, як почати, переконайтеся, що виконані такі вимоги:
- Сервер з Ubuntu 20.04 або Ubuntu 22.04 LTS (Ubuntu 18.04 більше не підтримується і не рекомендується для production)
- Привілеї Sudo або root на сервері
- Доменне ім’я, спрямоване на IP-адресу вашого сервера (настійно рекомендується для production розгортань)
- Мінімальне обладнання: 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 Made Easy: AlexHost пропонує доступні SSL Certificates для всіх типів веб-сайтів та додатків. Крім того, використовуйте безплатний метод 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.
10. Остаточна перевірка
Перевірте, що всі сервіси запущені
sudo systemctl status postgresql
sudo systemctl status mattermost
sudo systemctl status nginxПротестуйте Mattermost безпосередньо на порту 8065
curl -I http://localhost:8065Ви повинні отримати HTTP 200 OK або відповідь перенаправлення.
Завершіть веб-налаштування
- Відкрийте браузер і перейдіть на
https://your_domain.com - Вас привітає майстер налаштування Mattermost
- Створіть обліковий запис адміністратора
- Налаштуйте вашу першу команду та робочий простір
- Запросіть членів команди та почніть співпрацювати
Усунення поширених проблем
| Проблема | Ймовірна причина | Рішення |
|---|---|---|
| Сервіс Mattermost не запускається | Неправильні облікові дані бази даних у config.json | Перевірте DataSource рядок у SqlSettings |
| 502 Bad Gateway у Nginx | Mattermost не запущений на порту 8065 | Запустіть sudo systemctl restart mattermost |
| Помилки підключення WebSocket | Відсутні заголовки проксі WebSocket у Nginx | Перевірте блок розташування WebSocket у конфігурації Nginx |
| Помилки сертифіката SSL | Домен не вказує на IP-адресу сервера | Оновіть запис DNS A і дочекайтеся поширення |
| Відмовлено в підключенні до бази даних | PostgreSQL не запущений | Запустіть sudo systemctl start postgresql |
Чому вибрати надійного хостера для Mattermost?
Продуктивність та надійність вашого екземпляра Mattermost залежать від базової інфраструктури. Для невеликих та середніх команд добре налаштований VPS є ідеальним вибором. Для більших організацій з великим обсягом повідомлень розгляньте можливість переходу на Dedicated Server для максимальної продуктивності, ізоляції та контролю.
Якщо вам потрібна доменна назва для розгортання Mattermost, AlexHost пропонує конкурентну реєстрацію доменів з повним управлінням DNS. А якщо ви запускаєте кілька сервісів поряд з Mattermost, спільний веб-хостинг або VPS з cPanel можуть спростити управління за допомогою інтуїтивної панелі керування.
Резюме
Ви успішно встановили та налаштували Mattermost на Ubuntu з:
- ✅ PostgreSQL як базу даних бекенду
- ✅ Nginx як зворотний проксі виробничого рівня з підтримкою WebSocket
- ✅ Let’s Encrypt SSL для зашифрованих HTTPS з’єднань
- ✅ Сервіс systemd для автоматичного запуску та відновлення після збоїв
- ✅ Правильні дозволи файлів та виділеного системного користувача для безпеки
Mattermost тепер готовий служити приватним, самостійно розміщеним комунікаційним центром вашої команди — повністю під вашим контролем, без витоку даних за межі вашої інфраструктури.
на всіх хостингових послугах