概要
自社製品とMattermostとの連携について調査する機会があり、Mattermostを構築する必要があったため備忘録として公開します。
Mattermost とは
Mattermost は、Slackライクなオープンソースのメッセージングプラットフォームです。
見た目はSlackに非常に似ており、チャンネルベースのコミュニケーションが可能です。また、ファイル共有や様々な外部サービスとの連携機能を持っています。
セルフホスティングが可能なので、クラウドサービスの利用が難しい業務でもビジネスチャットを使用したい、というケースで使用されている例をよく見ます。
構築
自社製品との連携のテストということで、既存のMattermost環境が存在しないためEC2インスタンスを立ててそこにMattermostをインストールしていこうと思います。
EC2
EC2のインスタンスタイプは Ubuntu 24.04 LTS
とします。
EC2インスタンスの起動方法は割愛します。
Git Install
gitが必要なので、以下コマンドでインストールします。
sudo apt-get update
sudo apt-get upgrade
sudo apt install git
git --version
Docker Install
今回はdocker compose でMattermostを起動するため、以下コマンドでDockerをインストールします。(参照)
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
# Install the Docker packages.
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo docker run hello-world
sudo groupadd docker
sudo usermod -aG docker $USER
Install Mattermost
Mattermost の導入にはいくつかの方法がありますが、今回はこちらの docker compose を使用する方法を選択します。
Gitリポジトリをダウンロード
git clone https://github.com/mattermost/docker
.env
ファイル作成・編集
cd docker/
cp env.example .env
vi .env
.env
を以下のように編集します。
DOMAIN=xxx.xxx.xxx.xxx:8065 (EC2インスタンスのパブリックIPを設定)
TZ=Asia/Tokyo
POSTGRES_IMAGE_TAG=16-alpine (最新のバージョンを指定)
MATTERMOST_IMAGE_TAG=9.7.1 (最新のバージョンを指定)
MM_SERVICESETTINGS_SITEURL=http://${DOMAIN} (httpsからhttpに変更)
ディレクトリの作成とアクセス許可
mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
sudo chown -R 2000:2000 ./volumes/app/mattermost
今回は、NginxをリバースプロキシとしてHTTPS接続する手順はスキップするためこのままdocker compose で起動します。
docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d
動作確認
http://<EC2のパブリックIP>:8065/
にブラウザアクセスします。
以上です。