GCP無料枠を使ってSlackからMattermostへ移行してみた
Slackのフリープラン改悪のニュース
個人的に困ったことである。なぜなら、Slackのフリープランを使って年に一度のペースでほそぼそと知人と連絡のやり取りをしているためだ。これは2022年9月1日までに移行しておかねばなるまい。
Slackからの移行先選び
移行先の候補としてはたくさんあるようだが、今回 Mattermost というオンプレ型のチャットツールに移行することにした。理由としては次の3点などがある。
Slack から移行手順が Mattermost 公式から Migration Guide として示されている(移行手順が非公式ツールなどに委ねられていない)
Slack Mattermost 移行 などのキーワードで検索すると具体的な手順を示した情報が比較的引っかかりやすい
Google Cloud の無料枠を使ってホストすれば基本無料で使っていくことができる(セルフホストなのでサービス有償化などの影響を受けにくい)
移行手順
具体的な移行手順は既に他のブログで丁寧に紹介されているためそちらに委ね、本記事ではそれら手順を実施した際の感想や注意点を述べるに留める。
ただし、Mattermostの日本語検索の設定方法についてはググったところ、2022年時点の情報が少ない印象だったので以下に具体的な設定手順も合わせて紹介する。
1. GCP無料枠でMattermost環境構築
基本的に上記のブログに示されている手順通りで環境構築ができた。
GCP無料枠を使った記事としては上記が一番よく手順が示されていた印象である。
ただし、上記記事は2019年の古い(?)記事のため、特に下記の点など注意が必要だった。
GCP無料枠の仕様が f1-micro(現在は e2-micro が正しい)になっている点
GCP自体の UI が2019年の時から変わっているため、適宜最新のUIに読み替えが必要な点
Mattermost のディレクトリ構造が変わっていて証明書のパスなどを最新のものに読み替える必要がある点
Freenom と Sendgrid については本筋から離れているためか示されている手順が手薄な印象があり、その点自身で調べて設定していく必要がある点
2. SlackからMattermostへのデータ移行
基本的に上記のブログに示されている手順通りで環境構築ができた。
注意点としては、上記は GCP 上の Mattermost の話ではないため、Docker の話の部分は適宜 GCP に読み替えて設定する必要がある点くらいである。
また、上記ブログは記事として非常に丁寧に書かれているため、Mattermost の環境構築ができれば問題なく実施可能だと思われる。
他のSlackからMattermostへのデータ移行の記事 では、チャンネル名や画像データ、メールアドレスが移行できなかったという報告もあったが、上記ブログ手順ではそれら問題なくデータ移行することができた(おすすめ)。
3. Mattermost 日本語検索をできるようにする
最後に1点、上記1,2を実施すればチャットツールとして使い始めることができると思われるが、細かい(けど重要な)点として Mattermost はデフォルトでは日本語検索ができないため、日本語検索できるように追加で設定する必要があった。
注意点としては、Mattermost の日本語検索の記事で2020年以前の古いものだとデータベースの設定をしたり、ElasticSearchを導入したりする手間のかかるものが紹介されているが、2022年現在ではそれら設定は不要で、実験的に Bleve search という機能を Mattermost の管理者ログインした後にシステムコンソールからONにすることで日本語検索できるようになっている(比較的容易に使えるように改善がなされている)。
上記 Mattermost 公式ドキュメントに従って、System Console > Experimental > Bleve を選択し、一通りの機能を True(元々 false) に設定し、適宜 Index Directory を設定し、一度設定を保存する。
その後、GCP の VM 上で下記コマンドで Mattermost を一度落として再起動をかけた後に再び上記 Bleve 画面を開いて、Bulk Indexing > Index Now ボタンを押してインデックスを作成する。
sudo /opt/bitnami/ctlscript.sh stop
sudo /opt/bitnami/ctlscript.sh restart
Status に "Success" と出れば問題なくインデックスが作られたことになる。
その後、Mattermost 画面上部で検索キーワード(例えば「コロナ」)と入れて検索してみると、無事日本語検索できるようになっていることが確認できる。
おわり
Slack から Mattermost への移行は思ったより面倒くさかったが、今回無事に移行できて良かった。
最後にMattermost の環境構築やデータ移行についての手順をブログ記事にまとめてくださった方々に感謝いたします。
また Slack から Mattermost に移行後に気づいたが、環境構築せず Slack ライクに使える Zulip というサービスがあり、そちらもユーザー数40倍に増えたとのこと。
Mattermost の環境構築が手間だと思うのであれば Zulip を使うのも良いかもしれない(使い勝手は不明だが評判悪くはなさそうな印象)。