Mattermost構築

#環境
CentOS7
Windows7
Mattermost3.9.0
MySQL5.7

#概要
dockerやGitLabの方法もありましたがよく分からなかったので、
CentOS7に単体を直接インストールしてみました。
そこからWindowsで実際に使用するところまで。
公式の手順書通りですが、簡潔にまとめます。
https://docs.mattermost.com/install/install-rhel-71.html

使い方はまだあまりいじっていないので、あしからず。
日本語対応なのがすばらしい。

#MySQLのインストール
1.ダウンロード
```wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm```
2.yumリポジトリのインストール
```yum localinstall mysql57-community-release-el7-9.noarch.rpm```
3.MySQLのインストール
```yum install mysql-community-server```
4.MySQLサーバの起動
```systemctl start mysqld.service```
5.MySQL初起動時自動生成のrootパスワード取得
```grep 'temporary password' /var/log/mysqld.log```
6.取得したパスワードでログイン
```mysql -u root -p```
```パスワード入力をしてください。```
7.パスワードの変更(今は大文字と記号と数字必須みたいです)
｢Password42!｣部分に任意のパスを入力してください。
```mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'Password42!';```
8.マシンの起動時にMySQLが自動的に起動するように設定します。
```chkconfig mysqld on```
9.Mattermostユーザー 'mmuser'を作成
```mysql> create user 'mmuser'@'%' identified by 'mmuser-password';```
10.Mattermostデータベースを作成します
```mysql> create database mattermost;```
11.ユーザー 'mmuser'にアクセス権を与えます
```mysql> grant all privileges on mattermost.* to 'mmuser'@'%';```

#Mattermostサーバーのインストール
1.最新バージョンを確認して｢3.9.0｣の部分を変更してください。
https://about.mattermost.com/download/
```wget https://releases.mattermost.com/3.9.0/mattermost-3.9.0-linux-amd64.tar.gz```
2.Mattermost Serverファイルを抽出
```tar -xvzf *.gz```
3.解凍したファイルをディレクトリに移動
```mv mattermost /opt```
4.ファイル用のストレージディレクトリを作成
```mkdir /opt/mattermost/data```
5.サービスを実行するシステムユーザーとグループを設定し、所有権とアクセス許可を設定
3つ全部やります
```useradd --system --user-group mattermost```
```chown -R mattermost:mattermost /opt/mattermost```
```chmod -R g+w /opt/mattermost```
6.ファイルにデータベースドライバを設定
テキストエディタで編集します
```vi /opt/mattermost/config/config.json```
"DriverName"がmysqlになっているか確認
"mmuser～"の内容を以下のように変更
mmuser-passwordをパスワード、host-name-or-IPをホストIPに変更
```"mmuser:<mmuser-password>@tcp(<host-name-or-IP>:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"```
7.Mattermostサーバーをテスト
```cd /opt/mattermost/bin```
Mattermostサーバ起動
```sudo -u mattermost ./platform```
ログが出ることを確認したら終了
```CTRL + C```
8.Mattermostプロセスの監視を処理するデーモンを使用するため、Mattermostを設定
Mattermost設定ファイルを作成
```touch /etc/systemd/system/mattermost.service```
作成した空の設定ファイルに下記のものをコピー

```
[Unit]
Description=Mattermost
After=syslog.target network.target postgresql-9.4.service

[Service]
Type=simple
WorkingDirectory=/opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
LimitNOFILE=49152

[Install]
WantedBy=multi-user.target
```

サービスを実行可能にする
```chmod 664 /etc/systemd/system/mattermost.service```
システムのサービスをリロード
```systemctl daemon-reload```
Mattermostサービスを有効にする
```chkconfig mattermost on```
起動時にMattermostを起動するように設定
```systemctl enable mattermost```
9.Mattermostサーバーを起動
```systemctl start mattermost```
10.Mattermostが実行中であることを確認
Mattermostサーバーから返されたHTMLが表示されます
```curl http://localhost:8065 ```

#Mattermostサーバーの設定
1.ブラウザでMattermostインスタンスに移動
http://IPアドレス:8065

2.最初のチームとユーザを作成
最初に作成したユーザは管理者権限があるので、
システムコンソール等にアクセスできます。
統計とか見れたりします。

3.システムコンソールを開く
左上のユーザ名をクリックすると、｢System Console｣があります。

4.サイトURLを設定
｢GENERAL｣から設定できます。

#日本語設定
1.ユーザ名から｢Account Settings｣

2.左のサイドバーの｢Display｣

3.下部｢Language｣横の｢Edit｣で、｢日本語｣→｢Save｣

#誰かを招待
アカウントを持っていない人を招待
1.ユーザ名から｢チーム招待リンクを入手｣

2.URLが表示されるので、それを送信してアカウントを作ってもらう。

アカウントがある人を招待
1.ユーザ名から｢メンバーをチームに追加｣

2.もしくはURLを送るだけです。
http://IPアドレス/チーム名/

#まとめ
この方法はとても簡単でした。
各OS用のソフトがあるので、ブラウザじゃなくてもいい。
iOSとAndroidにもアプリがあるので、本体にVPN設定をしてあれば、
外出先からスマホでも利用ができます。
Slackと違って日本語なのが本当便利です。
設定も分かりやすいですしね！
見た目はSlackそっくりですが...
Mattermostのサイトをチラッと覗いたら、
｢Mattermost vs Slack｣
なんてのを目にしました。
敵意むき出しですが、対抗できると思います。笑
OSSなのでいろいろ実装できそうですし。