Install Mattermost 5.7.0 on CentOS 7
この記事について
本記事は、CentOS 7.x への Mattermost のインストールについて記載しています。
Production Docker でのインストールではない のでご了承ください。
※Production Docker での Mattermost インストールも今後やる予定です。
対象読者
- 社内のコミュニケーションツールの導入を検討している方
- 無料版 Slack の制限に困っている方
- お金かけずに Slack 製品版と同じようなことをしたい方
Mattermost とは
Mattermost(マターモスト/マッターモスト)とは、Mattermost, Inc. によって提供されている
OSS(オープンソース) の セルフホスティング式チャットサービス です。
世間ではよく**「Slack のクローン」**とか「Slack風チャットツール」と見做されてます。
※いわゆる、GitHub でいうところの GitLab みたいなもの
※GitLab Mattermost は、Mattermost のディストリビューション
エディション
下記の、2つのエディションが提供されています。有償サポートを契約したい場合は
Enterprise Edition のライセンスを購入することになります。
※本稿では、無償版を使用します。
※Mattermost Server ライセンス情報 (2019/1/24 現在)
- 無償版:Open Source Team Edition (MIT License)
- 商用版:Enterprise Edition
無償版のライセンスについては、
- サーバーサイド:MIT License
- そのほか:Apache License 2.0
で提供されています。
インストール
基本的に、公式ガイド に記載されている手順通りに進めます。
環境
- OS:CentOS 7.5
- DB:MySQL 8.0
- Mattermost:5.7.0
OS の最新化
最新のセキュリティパッチがないか確認しておきます。
# yum update
# yum upgrade
MySQL のインストール
MySQL 8.0 のインストールについては、こちら を参照してください。
MySQL 8.0 のインストールが終了したら、Mattermost のための設定を行います。
データベースの作成
mysql> CREATE DATABASE mattermost;
ユーザーの作成
※mmuser のパスワードは任意で変更してください。
mysql> CREATE USER 'mmuser'@'%' IDENTIFIED BY 'Passw0rd';
mysql> GRANT ALL PRIVILEGES ON mattermost.* TO 'mmuser'@'%';
Mattermost Server のインストール
※最新バージョン情報については、公式サイト を確認してください。
# wget https://releases.mattermost.com/5.7.0/mattermost-team-5.7.0-linux-amd64.tar.gz
# tar -xvzf mattermost-team-5.7.0-linux-amd64.tar.gz
# mv mattermost /opt
# mkdir /opt/mattermost/data
# useradd --system --user-group mattermost
# chown -R mattermost:mattermost /opt/mattermost
# chmod -R g+w /opt/mattermost
データベースドライバの設定
Mattermost が使用するリポジトリデータベースの設定を行います。
/opt/mattermost/config/config.json ファイルの SqlSettings -> DataSource の内容を変更します。
- <mmuser-password>:mmuser のパスワード
- <host-name-or-IP>:OS のホスト名、もしくはIPアドレス
- <database>:作成したデータベース名(mattermost)
mmuser:<mmuser-password>@tcp(<host-name-or-IP>:3306)/<database>?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s
"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mmuser:Passw0rd@tcp(127.0.0.1:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
"ConnMaxLifetimeMilliseconds": 3600000,
"MaxOpenConns": 300,
"Trace": false,
"AtRestEncryptKey": "",
"QueryTimeout": 30
},
Mattermost Server の起動
Mattermost Server が正常に起動するか確認します。
# cd /opt/mattermost/
# sudo -u mattermost ./bin/mattermost
コマンド実行後、以下のようなログが出力されます。
"Server is listening on [::]:8065" というメッセージが表示されたら、Ctrl + C キーで
サーバーを停止します。
{"level":"info","ts":1548264846.4320586,"caller":"utils/i18n.go:78","msg":"Loaded system translations for 'en' from '/opt/mattermost/i18n/en.json'"}
{"level":"info","ts":1548264846.432194,"caller":"app/app.go:143","msg":"Server is initializing..."}
{"level":"info","ts":1548264846.4383147,"caller":"sqlstore/supplier.go:207","msg":"Pinging SQL master database"}
{"level":"info","ts":1548264846.8107371,"caller":"sqlstore/upgrade.go:105","msg":"The database schema has been set to version 5.7.0"}
{"level":"error","ts":1548264848.1348784,"caller":"commands/server.go:79","msg":"SiteURL must be set. Some features will operate incorrectly if the SiteURL is not set. See documentation for details: http://about.mattermost.com/default-site-url"}
{"level":"info","ts":1548264848.1349447,"caller":"commands/server.go:82","msg":"Current version is 5.7.0 (5.7.0/Wed Jan 16 05:14:31 UTC 2019/7e5fda43bda67cd061e527b64046f241c2d6cc32/none)"}
{"level":"info","ts":1548264848.1349573,"caller":"commands/server.go:83","msg":"Enterprise Enabled: false"}
{"level":"info","ts":1548264848.1349666,"caller":"commands/server.go:84","msg":"Current working directory is /opt/mattermost"}
{"level":"info","ts":1548264848.1350036,"caller":"commands/server.go:85","msg":"Loaded config file from /opt/mattermost/config/config.json"}
{"level":"info","ts":1548264848.1352186,"caller":"filesstore/localstore.go:33","msg":"Able to write files to local storage."}
{"level":"info","ts":1548264848.135848,"caller":"app/migrations.go:25","msg":"Migrating roles to database."}
{"level":"info","ts":1548264848.1536536,"caller":"sqlstore/post_store.go:1286","msg":"Post.Message supports at most 16383 characters (65535 bytes)"}
{"level":"info","ts":1548264848.1853576,"caller":"app/migrations.go:101","msg":"Migrating emojis config to database."}
{"level":"info","ts":1548264848.1905212,"caller":"app/plugin.go:130","msg":"Starting up plugins"}
{"level":"info","ts":1548264849.9646518,"caller":"app/server.go:166","msg":"Starting Server..."}
{"level":"info","ts":1548264849.9655108,"caller":"app/server.go:226","msg":"Server is listening on [::]:8065"}
{"level":"info","ts":1548264849.9720645,"caller":"app/web_hub.go:75","msg":"Starting 4 websocket hubs"}
{"level":"info","ts":1548264850.0070567,"caller":"jobs/workers.go:68","msg":"Starting workers"}
{"level":"info","ts":1548264850.0080998,"caller":"jobs/schedulers.go:72","msg":"Starting schedulers."}
サービス登録
サーバー起動時に、Mattermost が自動起動するための設定を行います。
[Unit]
Description=Mattermost
After=syslog.target network.target mysqld.service
[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
# chmod 664 /etc/systemd/system/mattermost.service
# systemctl daemon-reload
# systemctl enable mattermost
# systemctl start mattermost
ファイアウォールの設定
Mattermost を使用するためのファイアウォール設定を行います。
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --zone=public --add-service=https --permanent
# firewall-cmd --zone=public --add-port=8065/tcp --permanent
# firewall-cmd --reload
アクセス確認
curlコマンドを実行して、HTML情報が取得できるか確認します。
- <host-name-or-IP>:OS のホスト名、もしくはIPアドレス
# curl http://<host-name-or-IP>:8065/
HTML情報を正常に取得できた場合は、ブラウザから上記URLにアクセスし
初期セットアップを行ってください。
Discussion