はじめに
現在、ひとりslackにハマっている。チャンネルを話題ごとに分けることができたり、記事のメモを気軽に投稿できるのがよく、ひとりで大盛り上がりである。以下のようなチャンネルを作っている。
- book
- diary
- tech
- gtd
- kaggle
- mooc
- work
しかし、あまりハマりすぎて、フリープランの壁にぶつかる。独りslackはフリープランで10000件の履歴という制限があるので、これはライフログの観点からよくない。独りtwitterも検討したのだけれどもチャンネルが分かれていないのが使いづらい。
そこで、slackのクローンのOSSである mattermost を導入することにした。
mattermostのインストール方法は、Linux Nativeな環境にインストールする方法と、dockerをつかう方法がある。今回は、Linuxに直にインストールする方法を選んだ。
環境
- Ubuntu 16.04 LTS
- mattermost 4.7.2
- mysql
preview
まずは、mattermostがどんなものか確認してみよう。mattermostがどんな感じかは、demo用お試しサーバにアクセスすると確認することができる。
または、 preview用の dockerを imageを試すことで確認できる。
インストール
mysqlのインストール
mysqlのインストールをし、mysqlの設定をする。
sudo apt-get install mysql-server
mysql -u root -p
mysql> create user 'mmuser'@'%' identified by 'mmuser-password';
mysql> create database mattermost;
mysql> grant all privileges on mattermost.* to 'mmuser'@'%';
mysql> exit
mattermostサーバのインストール
最新版の アーカイブをダウンロードする。
ダウンロードしたものは、解凍して、/opt配下に置く。
sudo mv mattermost /opt
sudo mkdir /opt/mattermost/data
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost
/opt/mattermost/config/config.jsonを MySQL用に編集する。
"DriverName"
を"mysql"
に。 DataSource を以下のように変える。
"mmuser:mmuser-password@tcp(127.0.1.1:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"
さあ、ここまできたら試してみよう。
cd /opt/mattermost
sudo -u mattermost ./bin/platform
これて起動して、 matter mostがたちあがれば成功! 簡単だね!
mattermostサービス起動
手動起動が成功したならば、次は自動起動。サービスに登録して、システム起動時に起動する。
/lib/systemd/system/mattermost.serviceを修正する。
\[Unit\]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service
\[Service\]
Type=simple
ExecStart=/opt/mattermost/bin/platform
Restart=always
RestartSec=10
WorkingDirectory=/opt/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152
\[Install\]
WantedBy=mysql.service
sudo systemctl daemon-reload`
sudo systemctl start mattermost.service
sudo systemctl enable mattermost.service
これで立ち上げ完了です!
設定
ここからは、mattermostの設定をしていきます。
Slackデータのインポート
まずは、slackの過去データを エクスボートして、mattermostにインポート。
日本語部分検索対応
mattermostでは、日本語検索に難がある。現在、mysqlの方に対処方法があるので、それを試す。postgresは知らない。
/etc/my.conf作成。
systemctl restart mysql
mysql mattermost -u mmuser -p mmuser-passoword
mysql> ALTER TABLE Posts DROP INDEX idx\_posts\_message_txt;
mysql> ALTER TABLE Posts ADD FULLTEXT INDEX idx\_posts\_message_txt (\`Message\`) WITH PARSER ngram COMMENT 'ngram reindex';
他にもいろいろ設定したけれども、細かいのでココでは省略。
おわりに
結構時間がかかったのだけれども、なんとか個人用のライフログ環境がmattermostで構築できました。