##概要
Slackを使いたくても社内事情等々で利用できない場合に人気な、MattermostをLinux環境にれいる方法を書いてみました。
CentOS7.2をベースにPostgreSQLとnginxを利用しています。
##前提条件
環境 | バージョン |
---|---|
OS | CentOS7.2 |
DB | PostgreSQL 9.5.x |
WebServer | nginx |
PostgreSQLおよびnginxは、あらかじめ以下よりインストールしておきましょう。
PostgreSQL 9.5.xをインストール(ソースからコンパイル)for CentOS 7.2
nginxインストール(ソースからコンパイル編)for CentOS7.2
##インストール準備
###DB作成
su postgres
psql
CREATE DATABASE mattermost;
CREATE USER mattermost WITH PASSWORD 'mattermost';
GRANT ALL PRIVILEGES ON DATABASE mattermost to mattermost;
\q
exit
###インストール
cd /usr/local/src
wget https://releases.mattermost.com/3.4.0/mattermost-team-3.4.0-linux-amd64.tar.gz
tar xvzf mattermost-team-3.4.0-linux-amd64.tar.gz
#ディレクトリを作成し、ファイルをコピーする
mkdir -p /docs/matt.exam.labo
cp -rf mattermost/* /docs/matt.exam.labo/
####ユーザーを作成する
useradd mattermost
sudo chown -R mattermost:mattermost /docs/matt.exam.labo/
####DB設定ファイルを設定
vi /docs/matt.exam.labo/config/config.json
"SqlSettings": {
"DriverName": "postgres", #<-PostgreSQLへ変更
"DataSource": "postgres://mattermost:mattermost@localhost:5432/mattermost?sslmode=disable&connect_timeout=10",
"DataSourceReplicas": [],
"MaxIdleConns": 10,
"MaxOpenConns": 10,
"Trace": false,
"AtRestEncryptKey": ""
},
- DriverNameを「postgres」に変更
- sslmode=disableを追加する
####テスト実行
/docs/matt.exam.labo/bin/platform
./platform
[2016/09/19 14:17:56 JST] [INFO] Loaded system translations for 'en' from '/docs/matt.exam.labo/i18n/en.json'
[2016/09/19 14:17:56 JST] [INFO] Current version is 3.4.0 (3.4.0/Wed Sep 14 13:19:13 UTC 2016/57f25fa59c71821cc38fd220b133aa6a40815e12/none)
[2016/09/19 14:17:56 JST] [INFO] Enterprise Enabled: false
[2016/09/19 14:17:56 JST] [INFO] Current working directory is /docs/matt.exam.labo/bin
[2016/09/19 14:17:56 JST] [INFO] Loaded config file from /docs/matt.exam.labo/config/config.json
[2016/09/19 14:17:56 JST] [INFO] Server is initializing...
[2016/09/19 14:17:56 JST] [INFO] Pinging sql master database
[2016/09/19 14:17:56 JST] [INFO] Pinging sql replica-0 database
[2016/09/19 14:17:56 JST] [INFO] The database schema has been set to version 3.4.0
[2016/09/19 14:17:56 JST] [DEBG] Deleting any unused pre-release features
[2016/09/19 14:17:56 JST] [DEBG] Initializing user api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing team api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing channel api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing post api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing web socket api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing file api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing command api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing admin api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing general api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing oauth api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing webhook api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing preference api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing license api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing emoji api routes
[2016/09/19 14:17:56 JST] [DEBG] Initializing status api routes
[2016/09/19 14:17:56 JST] [DEBG] Parsing server templates at /docs/matt.exam.labo/templates/
[2016/09/19 14:17:56 JST] [DEBG] Initializing web routes
[2016/09/19 14:17:56 JST] [DEBG] Using client directory at /docs/matt.exam.labo/webapp/dist/
[2016/09/19 14:17:56 JST] [INFO] Starting Server...
[2016/09/19 14:17:56 JST] [INFO] Server is listening on :8065
[2016/09/19 14:17:56 JST] [INFO] RateLimiter is enabled
[2016/09/19 14:17:56 JST] [DEBG] Checking for security update from Mattermost
[2016/09/19 14:18:27 JST] [DEBG] /
[2016/09/19 14:18:28 JST] [DEBG] /api/v3/users/initial_load
最後に、「[CRIT] Failed to ping db err:pq: SSL is not enabled on the server」が表示されている場合は、postgres://が付いているかと、sslmode=disableのパラメーターがあるを確認しましょう
ブラウザーを開き「http://server-ip:8065/」を開いてみましょう
のような画面が出ればサービスは正常起動しています。
一度、Ctrl+Cで、プロセスを終了します。
##サービス設定
https://docs.mattermost.com/install/prod-rhel-7.html#id2
を参考にサービスファイルを定義します。
vi /usr/lib/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=syslog.target network.target postgresql.service
[Service]
Type=simple
WorkingDirectory=/docs/matt.exam.labo/bin
User=mattermost
ExecStart=/docs/matt.exam.labo/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
[Install]
WantedBy=multi-user.target
サービスを自動起動設定にして、サービスを起動します
systemctl enable mattermost
systemctl start mattermost
##nginxを設定する
nginxは、既にインストール済みであることを想定しています。
configファイルに設定を追加し、mattermostの8065ポートをReverseProxyにする設定を入れます。
server {
listen 80;
server_name matt.exam.labo;
location / {
client_max_body_size 50M;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Frame-Options SAMEORIGIN;
proxy_pass http://127.0.0.1:8065;
}
}
####nginxサービスを再起動します
systemctl restart nginx
これで、ブラウザーで「http://server-ip/」でログインして、mattermostの設定画面が出ればOK!
##参考