Как да инсталирате 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 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: Отваряне на интерактивния 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
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 услуга гарантира, че той се стартира автоматично при включване и се рестартира при отказ — съществено за всяко 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 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.
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, Shared Web Hosting или VPS с cPanel могат да опростят управлението с интуитивен контролен панел.
Резюме
Успешно инсталирахте и конфигурирахте Mattermost на Ubuntu с:
- ✅ PostgreSQL като backend база данни
- ✅ Nginx като production-grade reverse proxy с WebSocket поддръжка
- ✅ Let’s Encrypt SSL за криптирани HTTPS връзки
- ✅ systemd услуга за автоматичен старт и възстановяване при срив
- ✅ Правилни разрешения за файлове и посветен системен потребител за сигурност
Mattermost е готов да служи като частен, самостоятелно хостван комуникационен хъб на вашия екип — напълно под ваш контрол, без данни напускащи вашата инфраструктура.
от всички хостинг услуги