ウェブサイト検索

Ubuntu 16.04 で PostgreSQL と Nginx を使用して Mattermost をインストールする方法


このページでは

  1. ステップ 1 - PostgreSQL データベースをインストールして構成する
  2. ステップ 2 - Mattermost のインストールと構成
  3. ステップ 3 - Mattermost Systemd サービスを構成する
  4. ステップ 4 - Nginx をインストールして構成する
  5. ステップ 5 - テスト
  6. 参照

Mattermost は、プログラミング言語の Golang と React で書かれたオープン ソースのメッセージング システムです。これは Slack の代替手段であり、それを使用して Slack や hipchat などの独自のメッセージング サービスを構築できます。 Mattermost は、チームのコミュニケーションを 1 か所にまとめ、どこからでもアクセスできるようにします。デスクトップ、Android デバイス、iPhone からアクセスできます。

このチュートリアルでは、PostgreSQL をデータベース システムとして使用し、Nginx を Mattermost のリバース プロキシとして使用する独自の Mattermost サーバーを作成する方法を説明します。オペレーティング システムとして ubuntu 16.04 を使用します。

前提条件

  • Ubuntu 16.04 - 64 ビット
  • ルート権限

ステップ 1 - PostgreSQL データベースのインストールと構成

Mattermost は、MySQL および PostgreSQL データベースをサポートしています。このチュートリアルのメイン データベースとして PostgreSQL を使用します。サーバーに接続し、リポジトリを更新します。

SSH でサーバーに接続するか、ターミナルにログインして、Ubuntu リポジトリを更新します。

ssh 
sudo apt-get update

root ユーザーとして、この apt コマンドを使用して PostgreSQL をインストールします。

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';

データベース mattermostdb に matteruser 権限を付与し、終了します。

GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q

ステップ 2 - Mattermost のインストールと構成

root ユーザーではなく、通常の Linux ユーザーとして Mattermost をインストールして構成します。 Mattermost をユーザー Matter として実行するため、サーバー上に matter という名前の新しい Linux ユーザーを作成する必要があります。

案件のユーザーとパスワードを新規作成します。

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

matter ユーザーが作成されたら、ユーザーにログインして wget で最新の Mattermost バージョンをダウンロードします。

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 ブロックで、4 行目の構成に localhost の IP アドレスを追加します。

"ListenAddress": "127.0.0.1:8065",

次に、48 行目の SqlSettings に移動します。DriverNameDataSource の構成を変更して、以下の構成で PostgreSQL データベースを使用します。

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

注:

matteruser=postgresql ユーザー。
matterpassword=パスワード。
mattermostdb=データベース。

保存して終了。

これが完了したら、bin ディレクトリに移動し、mattermost を実行します。

cd bin/
./platform

ポート 8065 を使用して、mattermost が localhost IP で実行されていることがわかります。

Ctrl + c を押して終了します。

ステップ 3 - Mattermost Systemd サービスの構成

systemd システム ディレクトリに移動し、新しい mattermost サービス ファイルを作成します。

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 ポートにマッピングします。

この apt コマンドを使用して、Ubuntu リポジトリから Nginx をインストールします。

sudo apt-get install nginx

Nginx config ディレクトリに移動し、SSL サブディレクトリを作成します。

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

OpenSSL を使用して新しい自己署名 SSL 証明書ファイルを生成し、秘密鍵のアクセス許可を変更します。

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

sites-available ディレクトリに 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 - テスト

Web ブラウザーを開き、mattermost のドメイン名 (私の場合は mattermost.mydomain.com) にアクセスします。

HTTPS 接続に自動的にリダイレクトされます。

最初に新しいアカウントを作成し、[アカウントの作成] をクリックします。

次に、新しいチームを作成するためのリンク、または管理者/システム コンソールにアクセスするためのリンクが表示されます。

[システム コンソールに移動] をクリックすると、以下のシステム コンソール ダッシュボードが表示されます。

[新しいチームの作成] をクリックし、チーム名を入力して [次へ] をクリックします。次に、チーム URL を構成し、[完了] ボタンをクリックします。

最後に、チーム ダッシュボードが表示されます。

最も重要なチーム チャット。

Ubuntu 16.04 上の PostgreSQL および Nginx Web サーバーで最も重要なことは、正常にインストールされました。

参照

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

関連記事: