15%

Збережіть 15% на всі хостинг-послуги

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

Використовуй код:

Skills
Почати
01.11.2024
1 +1

Як встановити Mattermost на Ubuntu: повний покроковий посібник

Mattermost — це потужна, відкрита платформа для обміну повідомленнями та командної співпраці, яка дає організаціям повний контроль над своєю комунікаційною інфраструктурою. Як самостійна альтернатива Slack та Microsoft Teams, Mattermost пропонує безпеку рівня підприємства, повне володіння даними та широкі можливості налаштування — все без повторюваних витрат на SaaS-підписку.

Цей комплексний посібник проведе вас через кожен крок встановлення та налаштування Mattermost на сервері Ubuntu, включаючи налаштування бази даних PostgreSQL, конфігурацію зворотного проксі Nginx та інтеграцію SSL-сертифіката.

Зміст

  1. Передумови
  2. Оновлення вашої системи
  3. Встановлення необхідних залежностей
  4. Завантаження та встановлення Mattermost
  5. Налаштування бази даних PostgreSQL
  6. Налаштування Mattermost
  7. Створення служби Systemd
  8. Налаштування Nginx як зворотного проксі
  9. Захист Mattermost за допомогою SSL (HTTPS)
  10. Остаточна перевірка

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 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 спрощено: AlexHost пропонує доступні SSL-сертифікати для всіх типів веб-сайтів та додатків. Крім того, використовуйте безплатний метод 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. Остаточна перевірка

15%

Збережіть 15% на всі хостинг-послуги

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

Використовуй код:

Skills
Почати