Как да инсталирате Mattermost на Ubuntu: Пълно ръководство стъпка по стъпка
Mattermost е мощна, с отворен код платформа за съобщения и сътрудничество на екипи, която дава на организациите пълен контрол над своята комуникационна инфраструктура. Като самостоятелна алтернатива на Slack и Microsoft Teams, Mattermost предлага сигурност на ниво предприятие, пълна собственост на данните и обширни възможности за персонализиране — всичко без повтарящи се разходи за SaaS абонамент.
Това всеобхватно ръководство ви преведе през всяка стъпка на инсталирането и конфигурирането на Mattermost на Ubuntu сървър, включително настройка на PostgreSQL база данни, конфигурация на Nginx обратен прокси и интеграция на SSL сертификат.
Съдържание
- Предварителни условия
- Актуализирайте вашата система
- Инсталирайте необходимите зависимости
- Изтеглете и инсталирайте Mattermost
- Настройте PostgreSQL база данни
- Конфигурирайте Mattermost
- Създайте Systemd услуга
- Конфигурирайте Nginx като обратен прокси
- Защитете Mattermost с SSL (HTTPS)
- Окончателна проверка
1. Предварителни условия
Преди да започнете, уверете се, че следните изисквания са налице:
- Сървър, работещ на Ubuntu 20.04 или Ubuntu 22.04 LTS (Ubuntu 18.04 е край на живота и не се препоръчва за производство)
- Sudo или root привилегии на сървъра
- Доменно име, насочено към IP адреса на вашия сървър (силно препоръчано за производствени внедрявания)
- Минимален хардуер: 1 vCPU, 2 GB RAM, 10 GB дисково пространство (за малки екипи); мащабирайте за по-големи внедрявания
> Съвет за хостинг: За гладко внедряване на Mattermost, помислете за надежден VPS хостинг план от 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 направено лесно: 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 е сега
