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)があるようだが、
必要パッケージ、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
この後色々とやってみたのだけれど…知識不足で設定完了せず。
コメントはこちらから お気軽にどうぞ ~ 投稿に関するご意見・感想・他