Как установить Mattermost с PostgreSQL и Nginx в Ubuntu 16.04
На этой странице
- Шаг 1. Установка и настройка базы данных PostgreSQL
- Шаг 2. Установите и настройте Mattermost
- Шаг 3. Настройка службы Mattermost Systemd
- Шаг 4. Установите и настройте Nginx
- Шаг 5. Тестирование
- Справочник
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