slack

【Mattermost】UbuntuにMattermostをインストールする方法【SSL対応】

どうも、katです。

今回は、slackとほぼ同等の機能で、無料メッセージ数などの制限なく使えるということで話題のMattermostをUbuntuにインストールする方法について書いていこうと思います。

※早ければ20分もかからずにインストール & SSL対応(HTTPS化)できるかと思います

もちろんコマンドが多少異なるだけで、CentOSなどにもインストール可能なので、CentOSの方は適宜コマンドを読み替えていただければと思います!

また、今回の記事ではslackからのデータ移行については書いておりません。

もしslackからMattermostへのデータ移行もお考えの方は、以下の記事も合わせて読んでいたいただけたらと思います。

【最新版対応】Mattermostにslackのデータを移行する方法【mmctl使用】どうも、katです。 最近、slackの公式サイトにて、2022年9月からフリープランではメッセージが3ヶ月間しか見れなくなるといった変...

※当記事のコマンドについて、root以外のユーザーで実施する場合は、適宜コマンドの前に「sudo」をつけて実施して下さい。

前提

今回ご紹介する方法では、Dockerを使用しますので、まだ済んでいない場合は実施してから先に進みましょう。

  • Dockerのインストール

まだDockerが入っていないようでしたら、以下の記事を参考に、インストールしてから進みましょう。

【簡単】Ubuntuにdockerをインストールする方法どうも、katです。 今回は、Ubuntuに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

次に、上記で作成した証明書を設定ファイルに記載します。

$ 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}/fullchain.pem
KEY_PATH=./certs/etc/letsencrypt/live/${DOMAIN}/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】Mattermostの言語を日本語に変更する方法【全員のデフォルト言語変更も可!】 どうも、katです。 今回は、slack互換のチャットツールであるMattermostの言語を日本語に設定する方法について書いて...

■メール送信設定

【Mattermost】Mattermostからメール送信できるようにする方法【SMTP設定】どうも、katです。 今回は、slackとほぼ同等の機能が使えるMattermostについて、ユーザーの招待メールなどを送れるようにする...

その他随時追加予定

最後に

いかがだったでしょうか?

私も色々と調べた結果、今回の方法で構築したMattermostが最もSSL含め、うまく動いているので、おすすめです。

構築自体も早ければ20分かからずに構築できるのではと思いますので、Mattermostの導入をお考えの方はぜひ参考にしていただければと思います。

また、冒頭でもお伝えしましたが、slackからMattermostへのデータ移行方法についても別途記事を書いておりますので、もしslackを辞めてMattermostをお考えの方などは、こちらも参考にしていただけたらと思います。

【最新版対応】Mattermostにslackのデータを移行する方法【mmctl使用】どうも、katです。 最近、slackの公式サイトにて、2022年9月からフリープランではメッセージが3ヶ月間しか見れなくなるといった変...

以上「UbuntuにMattermostをインストールする方法」でした〜。

参考

ABOUT ME
kat
プログラマー歴7年、2歳の子供を持つパパです。 興味のあることはプログラミングや今後のIT技術などです。 趣味でオンラインカードゲームのサイトを運営しております。 プログラミングを通して社会に貢献していきたいです。