Mattermostは、プログラミング言語GolangおよびReactで記述されたオープンソースのメッセージングシステムです。これはSlackの代替手段であり、SlackやHipchatなどの独自のメッセージングサービスを構築できます。 Mattermostは、チームのコミュニケーションを1つの場所にもたらし、どこからでもアクセスできるようにします。デスクトップ、Androidデバイス、iPhoneからアクセスできます。
このチュートリアルでは、データベースシステムとしてPostgreSQLを使用し、MattermostのリバースプロキシとしてNginxを使用する独自のMattermostサーバーを作成する方法を説明します。オペレーティングシステムとしてubuntu16.04を使用します。
前提条件
- Ubuntu16.04-64ビット
- ルート権限
MattermostはMySQLおよびPostgreSQLデータベースをサポートしています。このチュートリアルでは、PostgreSQLをメインデータベースとして使用します。サーバーに接続してリポジトリを更新します。
SSHでサーバーに接続するか、ターミナルにログインしてUbuntuリポジトリを更新します。
ssh [email protected]
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';
' matteruserを付与します 'データベースへの特権'mattermostdb 'そして終了します。
GRANT ALL PRIVILEGES ON DATABASE mattermostdb TO matteruser;
\q
Mattermostは、rootユーザーではなく、通常のLinuxユーザーとしてインストールおよび構成します。 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
Nginxリバースプロキシの背後でMattermostを実行するため、ローカルIPアドレスでリッスンするようにMattermostを構成することをお勧めします。 ' ServiceSettings 'ブロック、ローカルホストのIPアドレスを4行目の構成に追加します。
"ListenAddress": "127.0.0.1:8065",
次に、' SqlSettings に移動します '48行目。'DriverNameを変更します。 'および'データソース '以下の構成でPostgreSQLデータベースを使用するための構成:
"DriverName": "postgres",
"DataSource": "postgres://matteruser:[email protected]:5432/mattermostdb?sslmode=disable&connect_timeout=10",
注:
matteruser =postgresqlユーザー。
matterpassword =パスワード。
mattermostdb =データベース。
保存して終了します。
これが完了したら、binディレクトリに移動して、最も重要なことを実行します。
cd bin/
./platform
現在、Mattermostがポート8065のローカルホストIPで実行されていることがわかります。
Ctrl+cを押して終了します。
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
このステップでは、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;
}
}
ドメイン名を独自のドメインに変更し、保存して終了します。
' sites-enabled で最も重要なファイルへのシンボリックリンクを作成して、仮想ホストをアクティブ化します 'ディレクトリ。
ln -s /etc/nginx/sites-available/mattermost /etc/nginx/sites-enabled/
Nginx構成をテストし、エラーがないことを確認して、nginxを再起動します。
nginx -t
systemctl restart nginx
Webブラウザーを開き、最も重要なドメイン名(私の場合はmattermost.mydomain.com)にアクセスします。
HTTPS接続に自動的にリダイレクトされます。
最初に新しいアカウントを作成し、[アカウントの作成]をクリックします '。
次に、新しいチームを作成するためのリンク、または管理者/システムコンソールにアクセスするためのリンクが表示されます。
'システムコンソールに移動をクリックします 'そして、以下にシステムコンソールダッシュボードが表示されます:
[新しいチームの作成]をクリックします '、チーム名を入力し、'次へをクリックします '。次に、チームのURLを構成し、[完了]をクリックします。 'ボタン。
最後に、チームダッシュボードが表示されます。
最も重要なチームチャット。
Ubuntu16.04上のPostgreSQLおよびNginxWebサーバーのほとんどが正常にインストールされました。