Установка Mattermost на Ubuntu Mattermost — это платформа для обмена сообщениями и совместной работы, которую можно установить на собственных серверах или в облаке. Mattermost является альтернативой таким мессенджерам как Slack и RocketChat. В этом гайде мы рассмотрим тарифный план Free, который включает в себя безлимитную историю сообщений и групповые звонки (подробнее о тарифах). Клиенты Mattemost доступны на мобильных платформах (IOS, Android), в десктоп-версиях (Windows, Linux, Mac), также поддерживается браузерная версия.  Для тарифа Free доступна только Self Hosted версия; далее будет разбираться установка на Ubuntu. Ознакомиться с другими способами установки (в том числе и Docker-образ) можно на официальном сайте. Технические требования На 1000 пользователей минимально потребуется 1 CPU, 2GB RAM и  PostgreSQL v11+ (необязательно использовать именно Postgres). Установка Mattermost Теперь можно переходить к самой установке. Для установки подключим репозиторий  deb.packages.mattermost.com/repo-setup.sh. curl -o- https://deb.packages.mattermost.com/repo-setup.sh | sudo bash -s mattermost Здесь в  sudo bash -s mattermost передается аргумент  mattermost для добавления репозитория только Mattermost. Аргументом по умолчанию в данном скрипте является  all, тогда будут также добавлены репозитории Ngnix, PostgreSQL и Certbot. Установим сервис. Он будет установлен по пути  /opt/mattermost. Пользователь  mattermost и группа  mattermost будут созданы автоматически.  sudo apt update sudo apt install mattermost -y После установки понадобится создать  config.json с необходимыми правами (он создается на основе  config.defaults.json). Чтение и запись в файл будут доступны только для пользователя владельца (в нашем случае это  mattermost). sudo install -C -m 600 -o mattermost -g mattermost /opt/mattermost/config/config.defaults.json /opt/mattermost/config/config.json В конфиге необходимо заполнить параметры: sudo nano /opt/mattermost/config/config.json SiteUrl — сюда необходимо прописать созданный домен с протоколом https (в блоке  ServiceSettings). Позже мы подключим SSL-сертификат. DriverName — по умолчанию стоит postgres (в блоке  SqlSettings). DataSource — указать пользователя, пароль, хост и имя БД в ссылке подключения (в блоке  SqlSettings). Остальные конфиги не важны для первого запуска, и их можно будет изменить позднее в административной консоли Mattermost. Запускаем сервис Mattermost: sudo systemctl start mattermost Проверим, что ничего не упало и Mattermost поднялся: sudo systemctl status mattermost.service А также, что он доступен на порту 8065. Если сайт не открывается, проверьте настройки фаервола. Также можно обратиться к порту локально с сервера: curl -v localhost:8065 Дополнительно добавим автозапуск сервиса: sudo systemctl enable mattermost.service Nginx Мы не будем напрямую использовать порт 8065 — он будет позже закрыт фаерволом. Для проксирования запросов установим Nginx. sudo apt install nginx Теперь добавим конфигурацию: sudo nano /etc/nginx/sites-available/mattermost В строке  server_name необходимо указать свой домен, в нашем случае mattermost.twc1.net. Обратите внимание, что проксируется как HTTP, так и websocket-протоколы. upstream backend {   server 127.0.0.1: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 mattermost.twc1.net;   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;     client_body_timeout 60;     send_timeout 300;     lingering_timeout 5;     proxy_connect_timeout 90;     proxy_send_timeout 300;     proxy_read_timeout 90s;     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_http_version 1.1;     proxy_pass http://backend;  } } Добавим линк конфигурационного файла в  sites-enabled: sudo ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/mattermost Уберем дефолтный конфиг: sudo rm -f /etc/nginx/sites-enabled/default Делаем рестарт сервиса Nginx: sudo service nginx restart Теперь выпустим сертификат от Let’s Encrypt для домена через  certbot: sudo apt install python3-certbot-nginx && certbot Certbot попросит указать почту, домен и после добавит сертификат для домена. После установки сертификата  certbot допишет конфигурацию nginx mattermost. Будет добавлена директива  listen для обработки запросов с 443 порта, директивы с ключами и конфигами для SSL, а также редирект с HTTP на HTTPS. Firewall Я ограничил входящие TCP запросы портами 22 для работы с SSH, 80 и 443 для TCP. Для сбора метрик на дашборд сервера необходимо открыть также порт 10050; список IP-адресов, для которых необходимо открывать порт, будет в  /etc/zabbix/zabbix_agentd.conf. Первый запуск Теперь Mattermost будет доступен по адресу https://mattermost.twc1.net/. Можно создать аккаунт и рабочее пространство сразу из браузерной версии. После установки и при первом входе можно наблюдать проблему с коннектом Web-сокетов.  Рекомендую проверить конфиги, теперь сделать это можно из System Console.  Например, моя ошибка заключалась в URL сервера. Из коробки будут доступны звонки, playbooks, магазин с плагинами, аутентификация Gitlab. Также сам продукт имеет отличную документацию. Источник