Спестете 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 е достигнала край на живота си и не се препоръчва за производство)
  • 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: Отваряне на интерактивния shell на 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 shell и връщане към вашия потребител

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 услуга гарантира, че той се стартира автоматично при включване и се рестартира при отказ — съществено за всяко production развертаване.

Стъпка 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. Финална проверка

Проверете дали всички услуги работят

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, Shared Web Hosting или VPS с cPanel могат да опростят управлението с интуитивен контролен панел.

Резюме

Успешно инсталирахте и конфигурирахте Mattermost на Ubuntu с:

  • ✅ PostgreSQL като backend база данни
  • ✅ Nginx като production-grade reverse proxy с WebSocket поддръжка
  • ✅ Let’s Encrypt SSL за криптирани HTTPS връзки
  • ✅ systemd услуга за автоматичен старт и възстановяване при срив
  • ✅ Правилни разрешения за файлове и посветен системен потребител за сигурност

Mattermost е готов да служи като частен, самостоятелно хостван комуникационен хъб на вашия екип — напълно под ваш контрол, без данни напускащи вашата инфраструктура.