Заощадьте 15% на всіх хостингових послугах

Перевірте свої навички і отримайте Знижку на будь-який план хостингу

Використовуй код: Skills Почати
Рубрики
Linux Адміністрація

Як встановити 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 reboot

3. Встановлення необхідних залежностей

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/mattermost

5. Налаштування бази даних 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
exit

6. Налаштування 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 nginx

9. Захистіть Mattermost за допомогою SSL (HTTPS)

Запуск Mattermost через HTTPS є обов’язковим для будь-якого виробничого середовища. Це шифрує всі комунікації між користувачами та вашим сервером, захищаючи облікові дані та повідомлення від перехоплення.

> SSL Made Easy: AlexHost пропонує доступні SSL Certificates для всіх типів веб-сайтів та додатків. Крім того, використовуйте безплатний метод Let’s Encrypt нижче.

Крок 1: Отримайте безплатний SSL-сертифікат за допомогою Certbot

sudo certbot --nginx -d your_domain.com

Certbot автоматично:

  • Перевірить право власності на домен
  • Видасть сертифікат 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 або відповідь перенаправлення.

Завершіть веб-налаштування

  1. Відкрийте браузер і перейдіть на https://your_domain.com
  2. Вас привітає майстер налаштування Mattermost
  3. Створіть обліковий запис адміністратора
  4. Налаштуйте вашу першу команду та робочий простір
  5. Запросіть членів команди та почніть співпрацювати

Усунення поширених проблем

ПроблемаЙмовірна причинаРішення
Сервіс Mattermost не запускаєтьсяНеправильні облікові дані бази даних у config.jsonПеревірте DataSource рядок у SqlSettings
502 Bad Gateway у NginxMattermost не запущений на порту 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 тепер готовий служити приватним, самостійно розміщеним комунікаційним центром вашої команди — повністю під вашим контролем, без витоку даних за межі вашої інфраструктури.