セルフホスト可能な Slack。Mattermost と Rocket Chat を Docker で構築してみた

本当は音声通話・ビデオ会議がセルフホストできるツールを探していたのだが、その流れで見つけて検証したツール2つを紹介しておく。

Mattermost

まずは Mattermost というモノ。ミニマムな Slack という感じ。Docker での構築手順は以下の公式ガイドにまとまっている。

最小構成で作るにはこんな感じ。

# Docker 構築用の公式リポジトリを Clone してくる
$ git clone https://github.com/mattermost/docker
$ cd ./docker/

# .env ファイルを用意する
$ cp ./env.example ./.env

# 作業ディレクトリ配下にマウント用のディレクトリを作る
$ mkdir -p ./volumes/app/mattermost/{config,data,logs,plugins,client/plugins,bleve-indexes}
$ sudo chown -R 2000:2000 ./volumes/app/mattermost

# Docker Compose で起動する
$ docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml up -d

コレで http://localhost:8065 にアクセスすれば利用開始できる。終了時は以下。

$ docker compose -f docker-compose.yml -f docker-compose.without-nginx.yml down

Rocket Chat

Rocket Chat は AWS の人が研修をやる時に使っていたのを見て知ったモノで、プラグインを入れればビデオ通話にも対応できるということだったが、Jitsi というツールを別途入れる必要がある他、何やらセルフホストの場合でも会員登録や有料プランへの加入が必要な機能もあり、ちょっと微妙だと感じた。結局無料で使える範囲というと Mattermost と大差なく、Slack の代替品 (テキストチャット) という感じ。

Docker での構築手順は以下の公式ガイドにまとまっている。

# 適当に作業ディレクトリを作っておくと良いだろう
$ mkdir ./rocket-chat/ && cd $_

# Docker Compose ファイルを取得する
$ curl -L https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/compose.yml -O

# .env ファイルを取得する
$ curl -L -o .env https://raw.githubusercontent.com/RocketChat/Docker.Official.Image/master/env.example

次に、GitHub の Releases と DockerHub のリリースされている Tag を確認して、最新バージョンの番号を確認する。本稿執筆時点では 6.11.0 が最新版だった。

この内容を .env ファイルに書き込む。

# Rocket.Chat version
# see:- https://github.com/RocketChat/Rocket.Chat/releases
RELEASE=6.11.0

そしたらあとは Docker Compose で起動するだけ。

$ docker compose up -d

http://localhost:3000 にアクセスすると使い始められる。セルフホストしてるのに Rocket Chat への会員登録が要るっぽいのが面倒なところ。

閉じる時は以下で OK。

$ docker compose down

以上

今回も Docker を使って簡単に Slack 代替ツールを2つ試してみた。テキストチャットだけであればこれらのツールでも全然問題ないので、手軽に始めたい場合はご参考に。