Поиск по сайту:

Как установить Mattermost с PostgreSQL и Nginx в Ubuntu 16.04


На этой странице

  1. Шаг 1. Установка и настройка базы данных PostgreSQL
  2. Шаг 2. Установите и настройте Mattermost
  3. Шаг 3. Настройка службы Mattermost Systemd
  4. Шаг 4. Установите и настройте Nginx
  5. Шаг 5. Тестирование
  6. Справочник

Mattermost — это система обмена сообщениями с открытым исходным кодом, написанная на языках программирования Golang и React. Это слабая альтернатива, с ее помощью мы можем создать собственную службу обмена сообщениями, такую как slack или хипчат. Mattermost объединяет общение вашей команды в одном месте и делает его доступным в любом месте. Вы можете получить к нему доступ со своего рабочего стола, устройства Android и iPhone.

В этом руководстве я покажу вам, как создать собственный сервер Mattermost, который использует PostgreSQL в качестве системы базы данных и Nginx в качестве обратного прокси-сервера для Mattermost. Я буду использовать Ubuntu 16.04 в качестве операционной системы.

Предпосылка

  • Убунту 16.04 — 64-разрядная версия
  • Привилегии root

Шаг 1. Установите и настройте базу данных PostgreSQL.

Mattermost поддерживает базы данных MySQL и PostgreSQL. Мы будем использовать PostgreSQL в качестве основной базы данных для этого руководства. Подключитесь к вашему серверу и обновите репозиторий.

Подключитесь к своему серверу по SSH или войдите в терминал и обновите репозиторий Ubuntu.

ssh 
sudo apt-get update

Как пользователь root, установите PostgreSQL с помощью этой команды apt.

sudo apt-get install postgresql postgresql-contrib

Когда установка завершится, войдите в систему как пользователь postgres и введите команду psql, чтобы войти в оболочку postgresql.

su - postgres
psql

Измените пароль пользователя postgres с помощью следующей команды:

\password postgres
Enter new password:

Далее нам нужно настроить новую базу данных и пользователя для установки Mattermost. Я создам новую базу данных с именем MatterMostDB и пользователем MatterUser с паролем MatterPassword. Выберите безопасный пароль для установки.

Создайте новую базу данных и пользователя с запросом PostgreSQL ниже:

CREATE DATABASE mattermostdb;
CREATE USER matteruser WITH PASSWORD 'matterpassword';

Предоставьте права MatterUser для базы данных Mattermostdb и выйдите.

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

Шаг 2 — Установите и настройте Mattermost

Мы установим и настроим Mattermost как обычный пользователь Linux, а не пользователь root. Мы будем запускать Mattermost в качестве пользователя, поэтому нам нужно создать нового пользователя Linux с именем Matter на сервере.

Создайте нового пользователя и пароль.

useradd -m -s /bin/bash matter
passwd matter

Пользователь Mattermost создан, теперь войдите в систему и загрузите последнюю версию Mattermost с помощью wget.

su - matter
wget https://releases.mattermost.com/3.4.0/mattermost-3.4.0-linux-amd64.tar.gz

Извлеките файл Mattermost, и вы увидите новый каталог Mattermost, войдите в этот каталог с помощью команды cd.

tar -xzvf mattermost-3.4.0-linux-amd64.tar.gz
cd mattermost/

Затем создайте новый каталог данных для хранения пользовательских файлов, затем отредактируйте самый важный файл конфигурации config/config.json с помощью vim.

mkdir data/
vim config/config.json

Мы будем запускать Mattermost за обратным прокси-сервером Nginx, поэтому лучше настроить Mattermost для прослушивания локального IP-адреса. В блоке ServiceSettings добавьте IP-адрес локального хоста в конфигурацию в строке 4.

"ListenAddress": "127.0.0.1:8065",

Теперь перейдите к SqlSettings в строке 48. Измените конфигурацию DriverName и DataSource, чтобы использовать базу данных PostgreSQL со следующей конфигурацией:

"DriverName": "postgres",
"DataSource": "postgres://matteruser::5432/mattermostdb?sslmode=disable&connect_timeout=10",

Примечание:

matteruser=пользователь postgresql.
matterpassword=пароль.
mattermostdb=база данных.

Сохранить и выйти.

Когда это будет сделано, перейдите в каталог bin и запустите самый важный файл.

cd bin/
./platform

Вы увидите, что Mattermost сейчас работает на локальном IP-адресе с портом 8065.

Нажмите Ctrl + c, чтобы выйти.

Шаг 3. Настройка службы Mattermost Systemd

Перейдите в системный каталог systemd и создайте новый самый важный служебный файл.

cd /etc/systemd/system/
vim mattermost.service

Вставьте конфигурацию ниже:

[Unit]
Description=Mattermost is an open source, self-hosted Slack-alternative
After=syslog.target network.target

[Service]
Type=simple
User=matter
Group=matter
ExecStart=/home/matter/mattermost/bin/platform
PrivateTmp=yes
WorkingDirectory=/home/matter/mattermost
Restart=always
RestartSec=30
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target

Сохранить и выйти.

Перезагрузите демон systemd и запустите службу Mattermost, которую мы создали выше.

systemctl daemon-reload
systemctl start mattermost

Убедитесь, что нет ошибки. Убедитесь, что служба Mattermost запущена.

netstat -plntu
systemctl status mattermost

Шаг 4 — Установите и настройте Nginx

На этом этапе мы установим Nginx и настроим Nginx в качестве обратного прокси-сервера для Mattermost. Мы сопоставим самый важный порт 8056 с портом HTTP и HTTPS.

Установите Nginx из репозитория Ubuntu с помощью этой команды apt.

sudo apt-get install nginx

Теперь перейдите в каталог конфигурации Nginx и создайте подкаталог SSL.

cd /etc/nginx/
mkdir ssl/; cd ssl/

Создайте новый файл самозаверяющего SSL-сертификата с помощью OpenSSL и измените разрешения закрытого ключа.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/ssl/mattermost.crt -keyout /etc/nginx/ssl/mattermost.key
chmod 400 mattermost.key

Создайте новый файл виртуального хоста для Mattermost в каталоге, доступном для сайтов.

cd /etc/nginx/sites-available/
vim mattermost

Вставьте конфигурацию виртуального хоста ниже:

server {
   listen         80;
   server_name    mattermost.mydomain.com;
   return         301 https://$server_name$request_uri;
}

server {
   listen 443 ssl;
   server_name mattermost.mydomain.com;

   ssl on;
   ssl_certificate /etc/nginx/ssl/mattermost.crt;
   ssl_certificate_key /etc/nginx/ssl/mattermost.key;
   ssl_session_timeout 5m;
   ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
   ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
   ssl_prefer_server_ciphers on;
   ssl_session_cache shared:SSL:10m;

   location / {
      gzip off;
      proxy_set_header X-Forwarded-Ssl on;
      client_max_body_size 50M;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection "upgrade";
      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_pass http://127.0.0.1:8065;
   }
}

Измените доменное имя на свой домен, сохраните и выйдите.

Активируйте виртуальный хост, создав символическую ссылку на самый важный файл в каталоге с поддержкой сайтов.

ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/

Проверьте конфигурацию Nginx и убедитесь в отсутствии ошибок, а затем перезапустите nginx.

nginx -t
systemctl restart nginx

Шаг 5 - Тестирование

Откройте веб-браузер и зайдите на самое важное доменное имя, в моем случае: Mattermost.mydomain.com.

Вы будете автоматически перенаправлены на HTTPS-соединение.

Сначала создайте новую учетную запись, нажмите «Создать учетную запись».

Затем вы можете увидеть ссылку для создания новых команд или для доступа к консоли администратора/системы.

Нажмите «Перейти к системной консоли», и вы увидите панель управления системной консоли ниже:

Нажмите «Создать новую команду», введите название своей команды и нажмите «Далее». Затем настройте URL-адрес команды и нажмите кнопку «Готово».

Наконец вы видите Team Dashboard.

Командный чат Mattermost.

Mattermost с веб-сервером PostgreSQL и Nginx на Ubuntu 16.04 успешно установлен.

Ссылка

  • https://docs.mattermost.com/install/prod-debian.html