LoginSignup
27
40

More than 5 years have passed since last update.

slackクローンのmattermostをdockerで立てて使うメモ

Last updated at Posted at 2017-10-29

slackクローンのOSS mattermost をdockerで立てるメモ。
mattermostはslackを使えないケース(オフライン環境)でのchat opsに重宝する。

参考
https://docs.mattermost.com/install/docker-local-machine.html
https://docs.mattermost.com/install/prod-docker.html
https://github.com/mattermost/mattermost-docker-preview

mattermostをdockerで立てる方法は2つある。
- docker-composeを使った、multi-node production版
 https://github.com/mattermost/mattermost-docker
- docker runコマンド一発で起動できるLocal Machine Setup(Preview Mode)版
 https://github.com/mattermost/mattermost-docker-preview

とりあえず使ってみる感じなので後者で。

インストール

githubで公開されてる公式イメージのdockerfileはこんな感じ。
dbはmysql。

# Copyright (c) 2016 Mattermost, Inc. All Rights Reserved.
# See License.txt for license information.
FROM mysql:5.7

# Install ca-certificates to support TLS of Mattermost v3.5
RUN apt-get update && apt-get install -y ca-certificates

#
# Configure SQL
#

ENV MYSQL_ROOT_PASSWORD=mostest
ENV MYSQL_USER=mmuser
ENV MYSQL_PASSWORD=mostest
ENV MYSQL_DATABASE=mattermost_test

#
# Configure Mattermost
#
WORKDIR /mm

# Copy over files
ADD https://releases.mattermost.com/4.3.1/mattermost-team-4.3.1-linux-amd64.tar.gz .
RUN tar -zxvf ./mattermost-team-4.3.1-linux-amd64.tar.gz
ADD config_docker.json ./mattermost/config/config_docker.json
ADD docker-entry.sh .

RUN chmod +x ./docker-entry.sh
ENTRYPOINT ./docker-entry.sh

# Create default storage directory
RUN mkdir ./mattermost-data
VOLUME ./mattermost-data

# Ports
EXPOSE 8065

カスタマイズしたい場合はcloneしてビルドすれば良い
git clone https://github.com/mattermost/mattermost-docker-preview.git

dockerがインストール済みであれば、以下コマンドで起動完了

docker run --name mattermost-preview -d --publish 8065:8065 mattermost/mattermost-preview

基本設定

ログインし、初期アカウント作成
メールアドレスは適当でOK。usernameとpasswordを入れて Create Account。
初期ユーザはadminとかrootとか適当に。(後で変更可能)

スクリーンショット 2017-10-29 14.54.45.png

次に [create a new team]で Team を作成する。
情報共有するプロジェクトや開発チーム単位で任意に。

スクリーンショット 2017-10-29 14.56.50.png

メイン画面がこちら↓
tutorialは適当にskipできる。
Public Channelsにはデフォルトで[Off Topic]と[Town Square]が用意されてる。
これらはTeamの全ユーザで共有することを目的とし、ユーザは自動で追加される標準チャネル。
Private Channelsは、Team内でもメンバーを限定して共有したい場合に利用する。
チャネルは任意で追加/削除/rename等が可能。
Direct Messagesは、ユーザ間の個別メッセージ用。

スクリーンショット 2017-10-29 14.59.36.png

初回利用時は、メインページ上部に邪魔な青い警告バーが表示される。
管理者用のSystem Consoleの設定で非表示にできる。

警告1)
「Please configure your Site URL in the System Console.」
→[General] - [Configuration] - [Site URL]を登録してSAVE

警告2)
「Preview Mode: Email notifications have not been configured」
→[Notification] - [Email] - [Enable Email Notifications:]をenableにしてSAVE

管理画面 [System Console]

管理者用のSystem Consoleは以下。
次のような設定が可能
・ログイン認証をGitLabアカウントと連携する設定
・Mail通知連携の設定
・外部Gitサービスやクラウドサービスなどと連携するためのWebhook設定
・ユーザ権限変更、パスワードリセット、無効化
・チャネル作成数上限設定
・他

スクリーンショット 2017-10-29 16.59.26.png

ユーザ追加

なお、ユーザ追加は管理画面で簡単に一括でできると思いきや、基本的に招待機能を使う必要がある。
メール連携設定をしなくても可能で、その場合はメインメニューの「Get Team Invite Link」でアカウント登録用URLにアクセスし、1ユーザずつアカウントを追加する。
登録の際、メールアドレス入力が必要だが、メール認証は不要なので、適当で可。
また、SMTPの設定をしていれば、「Send Email Invite」でメールで招待通知を出せる。

バックアップ

なお、この設定ではバックアップを考慮しておらず、データはコンテナ内に保持される。
適宜データフォルダ(mottermostとmysql)をホストマウントして、バックアップするなどの対策が必要。

Web Hook

Incoming WebHooks機能で、任意のチャネルに外部からbot的に投稿することができる。
Admin権限のあるユーザのメニューから [Integrations] - [Incoming Webhooks]で、外部からHTTP POSTする URLを生成できる。
※Incoming WebHooks機能の有効化やユーザ権限の変更は、System Consoleから。

参考
 https://docs.mattermost.com/developer/webhooks-incoming.html

スクリーンショット_2017-10-29_22_46_09.png

curlコマンドで以下のように実行すると、例えば外部からアラートなどを投稿ができる。
テキストをカスタマイズすれば、ChatOps的に使えるはず。

curl -i -X POST -d 'payload={"text": "Hello World!"}' http://{your-mattermost-site}/hooks/{Webhooks URL}
27
40
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
27
40