どうも、katです。
今回は、slackとほぼ同等の機能で、無料でメッセージ数などの制限なく使えるということで話題のMattermostをUbuntuにインストールする方法について書いていこうと思います。
※早ければ20分もかからずにインストール & SSL対応(HTTPS化)できるかと思います
もちろんコマンドが多少異なるだけで、CentOSなどにもインストール可能なので、CentOSの方は適宜コマンドを読み替えていただければと思います!
また、今回の記事ではslackからのデータ移行については書いておりません。
もしslackからMattermostへのデータ移行もお考えの方は、以下の記事も合わせて読んでいたいただけたらと思います。
※当記事のコマンドについて、root以外のユーザーで実施する場合は、適宜コマンドの前に「sudo」をつけて実施して下さい。
前提
今回ご紹介する方法では、Dockerを使用しますので、まだ済んでいない場合は実施してから先に進みましょう。
- Dockerのインストール
まだDockerが入っていないようでしたら、以下の記事を参考に、インストールしてから進みましょう。
Mattermost構築手順
それでは早速Mattermostを構築していきます。
以下の手順を順に実施していくことでMattermostの構築ができます。
ソースコードをclone
下記のコマンドで、Mattermostのソースコードを取得し、作成されたディレクトリに移動します。
$ git clone https://github.com/mattermost/docker
$ cd docker
設定ファイル作成 & 修正
下記のコマンドで設定ファイルを作成します。
$ cp env.example .env
次に作成したファイルを編集します。
$ vi .env
# 以下の部分を修正します。
DOMAIN=mm.example.com
↓
DOMAIN={サーバーのドメイン名}
必要なフォルダ作成 & パーミッション設定
下記のコマンドで、必要なディレクトリ作成とパーミッションの設定を行います。
$ mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
$ sudo chown -R 2000:2000 ./volumes/app/mattermost
SSL(HTTPS化)設定
こちらは、UbuntuサーバーにSSL証明書が作成済みかそうでないかで手順が変わります。
Let’s Encryptなどで証明書が作成されている場合は「既にSSL証明書がある場合」の方を見ていただき、作成していない場合は「サーバーにSSL証明書がない場合」を見ていただけたらと思います。
サーバーにSSL証明書がない場合
下記のコマンドで、SSL用の証明書を作成します。
$ bash scripts/issue-certificate.sh -d {サーバーのドメイン名} -o ${PWD}/certs
メールアドレスを聞かれるので、受信可能なメールアドレスを入力します。
その他色々聞かれますが、すべてEnterで大丈夫です。
次に、上記で作成した証明書を設定ファイルに記載します。
$ vi .env
# 以下の部分を修正します。
CERT_PATH=./volumes/web/cert/cert.pem
KEY_PATH=./volumes/web/cert/key-no-password.pem
↓
# 変更例(証明書作成時に出力されるパスを見てください)
CERT_PATH=./certs/etc/letsencrypt/live/${DOMAIN}-0001/fullchain.pem
KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}-0001/privkey.pem
※${DOMAIN}部分はそのままで大丈夫です。
既にSSL証明書がある場合
もしもすでに、UbuntuにSSL証明書を作成済みの場合は、下記のコマンドでSSL証明書をMattermostのボリューム内にコピーします。
$ cp {既に作成済みの証明書ファイル} ./volumes/web/cert/fullchain.pem
$ cp {既に作成済みの証明書キーファイル} ./volumes/web/cert/privkey.pem
↓例
$ sudo cp /etc/letsencrypt/archive/{ドメイン名}/fullchain.pem ./volumes/web/cert/fullchain.pem
$ sudo cp /etc/letsencrypt/archive/{ドメイン名}/privkey.pem ./volumes/web/cert/privkey.pem
次に、設定ファイルを書き換えます。
$ vi .env
# 以下の部分を修正します。
CERT_PATH=./volumes/web/cert/cert.pem
KEY_PATH=./volumes/web/cert/key-no-password.pem
↓
CERT_PATH=./volumes/web/cert/fullchain.pem
KEY_PATH=./volumes/web/cert/privkey.pem
Mattermost起動
ここまでできたら、いよいよMattermostを起動していきます。
下記のコマンドで起動します。
$ sudo docker-compose -f docker-compose.yml -f docker-compose.nginx.yml up -d
その他
上記のコマンドでいくつかコンテナが起動しますが、Mattermost自体のコンテナは「docker_mattermost_1」です。
なので、Mattermostのコンテナに入って何か作業したい場合などは、下記のコマンドでコンテナに入れます。
$ docker container exec -it docker_mattermost_1 /bin/sh
動作確認
起動できたら「https://{サーバーのドメイン名}」にアクセスして、無事アクセスできることを確認しましょう。
初回は、ユーザー登録画面が表示されるため、ユーザーを登録します。
またその後、チームの作成画面も表示されますので、画面に従ってチーム(slackでいうところのワークスペース)を作成します。
その他やっておくと便利な設定
こちらは必須ではありませんが、インストール後に是非やっておきたい設定についても記事を書いていますので、参考にしていただけたらと思います。
■言語の変更
■メール送信設定
その他随時追加予定
最後に
いかがだったでしょうか?
私も色々と調べた結果、今回の方法で構築したMattermostが最もSSL含め、うまく動いているので、おすすめです。
構築自体も早ければ20分かからずに構築できるのではと思いますので、Mattermostの導入をお考えの方はぜひ参考にしていただければと思います。
また、冒頭でもお伝えしましたが、slackからMattermostへのデータ移行方法についても別途記事を書いておりますので、もしslackを辞めてMattermostをお考えの方などは、こちらも参考にしていただけたらと思います。
以上「UbuntuにMattermostをインストールする方法」でした〜。