Quantcast
Channel: ろっひー
Viewing all articles
Browse latest Browse all 77

Mattermostを試してみる

$
0
0

Slackが便利。少し前に耳にしたが…今用意している仕組みと何が違うの?と聞くと、相手がログインしていなくてもメッセージを気軽に出せることかなー、だったので気にしていなかった。


ところが、最近再び社内でクローズアップされてきている。ちょっと調べてみると、色々と便利そうではあるが、始めようとすると費用感をどうにかする必要がある。


ならばMattermostをインストールして試してみよう、ということになった。






まずは何者かを調べてみようと思ったら…色々とまとめてくれている人がいた。

SlackクローンのMattermostを使ってみる - 導入、初期設定編-


で、ここで基礎知識を得て色々とたどってみたところ、

Installing Mattermost on Ubuntu 16.04 LTS

にインストール方法が書いてあることを確認。


■MySQL設定


既に運用中のシステムを使うが、これにはUbuntu16とMySQLが導入済み。

ユーザーとデータベースを作る。


$ mysql -u root -p
mysql> create user 'mmuser'@'localhost' identified by 'mmuser-password';
mysql> create database mattermost;
mysql> grant all privileges on mattermost.* to 'mmuser'@'localhost';
mysql> quit

 


■Mattermost Server のダウンロードと展開。


ここからダウンロードしてくる。

Download - Mattermost


この日のバージョンは Latest Release: 4.7.2 となっていた。

これを展開する。


これを、ドキュメントとは違っているけど、/usr/shareに移動。


$ tar zxvf mattermost-4.7.2-linux-amd64.tar.gz
$ sudo mv mattermost /usr/share/

ユーザを作って持ち主を変え、グループに書き込み権限を付ける。


$ sudo useradd --system --user-group mattermost
$ sudo chown -R mattermost:mattermost /usr/share/mattermost/
$ sudo chmod -R g+w /usr/share/mattermost/

 


■Databaseドライバ設定


/usr/share/mattermost/config/config.json を開き、赤文字部分を編集する。



"SqlSettings": {
"DriverName": "mysql",
"DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
"DataSourceReplicas": [],
"DataSourceSearchReplicas": [],
"MaxIdleConns": 20,
"MaxOpenConns": 300,
"Trace": false,
"AtRestEncryptKey": "",
"QueryTimeout": 30


mostest はパスワードに、dockerhost は localhost に、mattermostはデータベース名の mattermost に書き換える。


 


■起動するかどうかを試す


とりあえず起動してみる感じ。これで黄色部分が表示されたらOKらしく、[CTRL]+Cで


$ cd /usr/share/mattermost/
$ sudo -u mattermost ./bin/platform
[2018/03/06 08:02:39 JST] [INFO] Loaded system translations for 'en' from '/usr/share/mattermost/i18n/en.json'
[2018/03/06 08:02:39 JST] [INFO] Server is initializing...

[2018/03/06 08:02:42 JST] [INFO] Starting Server...
[2018/03/06 08:02:42 JST] [INFO] Server is listening on [::]:8065
[2018/03/06 08:02:42 JST] [INFO] API version 3 is scheduled for deprecation. Please see https://api.mattermost.com for details.
[2018/03/06 08:02:42 JST] [INFO] Starting 4 websocket hubs
[2018/03/06 08:02:43 JST] [INFO] Starting workers
[2018/03/06 08:02:43 JST] [INFO] Starting schedulers.
^C(ここで表示が止まった。マニュアルに沿って割り込みを入れた)
[2018/03/06 08:09:22 JST] [INFO] Stopping schedulers.

[2018/03/06 08:09:22 JST] [INFO] Server stopped

 


■自動起動するように設定する


systemd の unit ファイルを作るそうで…


$ sudo touch /lib/systemd/system/mattermost.service
$ sudo vi /lib/systemd/system/mattermost.service

中身はこれを貼り付ける。Administrator Guide から変えた場所は赤文字。


[Unit]
Description=Mattermost
After=network.target
After=mysql.service
Requires=mysql.service

[Service]
Type=simple
ExecStart=/usr/share/mattermost/bin/platform
Restart=always
RestartSec=10
WorkingDirectory=/usr/share/mattermost
User=mattermost
Group=mattermost
LimitNOFILE=49152

[Install]
WantedBy=mysql.service

unitを追加、起動、確認、サービスの有効化。


$ sudo systemctl daemon-reload
$ sudo systemctl start mattermost.service
$ sudo systemctl status mattermost.service
mattermost.service - Mattermost
Loaded: loaded (/lib/systemd/system/mattermost.service; disabled; vendor preset: enabled)
Active: active (running) since 火 2018-03-06 08:43:36 JST; 31s ago

$ sudo systemctl enable mattermost.service

ということで、サービスの登録までできた模様。


■接続して確かめつつ最初の設定


http://hogeserver:8065


最初に作られるユーザーは system_admin 権限になる模様。

そのため、root@hogeserver.hogeddns.jp なアカウントを作ってみた。


ログインしたら「Go to System Console」で設定開始。

後は追々設定していけばいいだろう。


GENERAL -> Configuration
Site URL: https://mm.hogeserver.hogeddns.jp

GENERAL -> Localization
Default Server Language: 日本語
Default Client Language: 日本語

NOTIFICATIONS -> Email
Enable Email Notifications: true
Notification Display Name: Hogeserver master
Notification From Address: webmaster@hogeserver.hogeddns.jp
Notification Fotter Mailling Address: このサービスはHogeserverで運用しています。
SMTP Server: hogeserver.hogeddns.jp <- localhostでもいいかもしれない
SMTP Server Port: 25 等々

 


■Apache設定


443ポートでサービス公開しようと思う。

Openmeetingsの設定を参考にして、mmという仮想ホストを作り…


mattermost.conf


#
# Mattermost
#

<VirtualHost *:443>
ServerName mm.hogeserver.hogeddns.jp
ServerAdmin webmaster@hogeserver.hogeddns.jp

ProxyPreserveHost on
RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*) ws://mm.hogeserver.hogeddns.jp:8065/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*) http://mm.hogeserver.hogeddns.jp:8065/$1 [P,L]
ProxyPassReverse / http://mm.hogeserver.hogeddns.jp:8065/
ProxyPassReverse / ws://mm.hogeserver.hogeddns.jp:8065/

Header edit Content-Security-Policy ws: wss:

ErrorLog ${APACHE_LOG_DIR}/mattermost-error.log
CustomLog ${APACHE_LOG_DIR}/mattermost-access.log combined

SSLEngine on
SSLCertificateFile /etc/ssl/private/any-hogeserver.crt
SSLCertificateKeyFile /etc/ssl/private/any-hogeserver.key
</VirtualHost>

 


接続・利用に問題なし、とみられる。


 




 


■全文検索対応(部分一致で検索ができるようにする)


入れなくても部分一致検索ができるようなら、何もしなくていいと思う。

できないような気がしたので挑戦。


Mroonga v8.00 documentation >> 2.インストール >> 2.4. Ubuntu

Mattermostの日本語メッセージ全文検索対応まとめ(MySQL編)


$ sudo add-apt-repository -y ppa:groonga/ppa
$ sudo apt update
$ sudo apt-get install -V mysql-server-mroonga

$ mysql mattermost -u mmuser -p
mysql> show engines;
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+--------------------+---------+----------------------------------------------------------------+--------------+------+------------+
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |

| Mroonga | YES | CJK-ready fulltext search, column store | NO | NO | NO |

mysql> alter table `Posts` engine = Mroonga;
mysql> quit

$ sudo apt install groonga-tokenizer-mecab
$ mysql mattermost -u mmuser -p
mysql> alter table `Posts` DROP INDEX idx_posts_message_txt;
mysql> alter table `Posts` add fulltext index idx_posts_message_txt (`Message`) comment 'parser "TokenMecab"';

$ sudo apt install mecab mecab-ipadic


 


/etc/mysql/my.cnf に以下を追加。


[mysqld]
character-set-server=utf8
skip-character-set-client-handshake
default-storage-engine=INNODB
# MeCab Full-Text Parser Plugin Settings
loose-mecab-rc-file=/etc/mecabrc
innodb_ft_min_token_size=1


[mysqldump]
default-character-set=utf8

[mysql]
default-character-set=utf8

 


MySQLの再起動。


$ sudo service mysql restart
$ sudo service mattermost restart

 


先日、MySQLのバージョンアップが提供された。

導入したところ、Mroongaが外れてしまう問題が発生、インストール用のSQLを流し込んで復活させた。


たしか、mysql_install_db というSQLを流し込んだはず…




 


使ってみた印象。


文字を書き込めて検索できて、必要ならメールを飛ばせて、画面も簡単に貼り付けられる…ということで、IRCよりかなり便利に使えている。


オンプレでこうしたコミュニケーション手段を持つことができるのはいい、と思うのだった。


 




★以下はやりかけ、上手く動作させるまでに至らなかった。


■Dockerインストール


いざとなったら会話がしたい。ということで、WebRTCが要求するDockerをインストールする。


DockerはCommunity Edition(CE)とEnterprise Edition(EE)があるようだが、


Get Docker CE for Ubuntu


必要パッケージ、GPGキー、リポジトリを導入。


$ sudo apt update
$ sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
→ これは結局全てインストール済みだった
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
$ sudo apt-key fingerprint 0EBFCD88
pub 4096R/0EBFCD88 2017-02-22
フィンガー・プリント = 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88
uid Docker Release (CE deb) <docker@docker.com>
sub 4096R/F273FCD8 2017-02-22
$ sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

 


Dockerのインストールとテスト。


$ sudo apt update
$ sudo apt-get install docker-ce
$ sudo docker run hello-world

 


これで色々と試してみたけど、ビデオ通話ができない。


docker を使って mattermost-webrtc というのを実行しなければならないらしい。


$ sudo docker run --name mattermost-webrtc -p 7088:7088 -p 7089:7089 -p 8188:8188 -p 8189:8189 -d mat
termost/webrtc:latest

 


この後色々とやってみたのだけれど…知識不足で設定完了せず。


 


Viewing all articles
Browse latest Browse all 77

Trending Articles