Rocket.Chatとは?
オンプレへの導入が可能なSlackのようなチームコミュニケーションツールです。1
無料で使用できる上、自由度も高いため、Slackを何らかの理由で使えない企業にもってこいです。
なぜSlackを使わないの?
- ファイルアップロード機能により、顧客情報が漏れることを懸念した。
- 社外からでもSlackだとアクセスできてしまう(スマホなど)
- Slackだとメッセージが無料枠で1万件までしか送信できない。
ここらへんの理由により、Rocket.Chatを導入することとなりました。
Rocket.Chat vs Slack
※Rocket.Chatはオンプレ版であるとします。
Rocket.Chat | Slack | |
---|---|---|
価格 | 無料 | 無料(有料あり) |
環境 | オンプレ | クラウド |
自由度 | 高い | 価格次第 |
連携性 | 低い | 高い |
上司を説得 | 簡単 | 難しい |
Rocket.Chatは設定や、権限周りが豊富で幅の広い設定が可能です。
Slackほどの他ツールとの連携力はありませんが、Hubotと連携しChatOpsな環境を作ることも可能です。2
導入
1.導入するディレクトリに以下のdocker-compose.ymlを配置
docker-compose.yml
version: '2'
services:
rocketchat:
image: rocket.chat:latest
command: bash -c 'for i in `seq 1 30`; do node main.js && s=$$? && break || s=$$?; echo "Tried $$i times. Waiting 5 secs..."; sleep 5; done; (exit $$s)'
restart: unless-stopped
volumes:
- ./uploads:/app/uploads
- /etc/localtime:/etc/localtime:ro
environment:
- PORT=3000
- ROOT_URL=http://xx.xx.xx.xx:3000
- MONGO_URL=mongodb://mongo:27017/rocketchat
- MONGO_OPLOG_URL=mongodb://mongo:27017/local
- Accounts_UseDNSDomainCheck=false
- TZ=Asia/Tokyo
depends_on:
- mongo
ports:
- 3000:3000
mongo:
image: mongo:4.0
restart: unless-stopped
volumes:
- ./data/db:/data/db
- ./data/dump:/dump
- /etc/localtime:/etc/localtime:ro
environment:
- TZ=Asia/Tokyo
ports:
- 27017:27017
command: mongod --smallfiles --oplogSize 128 --replSet rs0 --storageEngine=mmapv1
mongo-init-replica:
image: mongo
command: 'bash -c "for i in `seq 1 30`; do mongo mongo/rocketchat --eval \"rs.initiate({ _id: ''rs0'', members: [ { _id: 0, host: ''localhost:27017'' } ]})\" && s=$$? && break || s=$$?; echo \"Tried $$i times. Waiting 5 secs...\"; sleep 5; done; (exit $$s)"'
depends_on:
- mongo
hubot:
image: rocketchat/hubot-rocketchat:latest
restart: unless-stopped
environment:
- ROCKETCHAT_URL=xx.xx.xx.xx:3000
- ROCKETCHAT_ROOM=GENERAL
- ROCKETCHAT_USER=bot
- ROCKETCHAT_PASSWORD=password
- BOT_NAME=bot
- RESPOND_TO_DM=true
- RESPOND_TO_EDITED=true
- HUBOT_ADAPTER=rocketchat
- EXTERNAL_SCRIPTS=hubot-help,hubot-seen,hubot-links,hubot-diagnostics
- TZ=Asia/Tokyo
depends_on:
- rocketchat
volumes:
- ./scripts:/home/hubot/scripts
- /etc/localtime:/etc/localtime:ro
labels:
- "traefik.enable=false"
ports:
- 3001:8080
ROOT_URL=http://xx.xx.xx.xx:3000
のxx部分は、
対象のホストのIPアドレスを持ってきてください。3
2.以下のコマンドを配置したディレクトリで実行
$ docker-compose up -d
プロキシに引っかかる場合
プロキシで引っかかる場合は、大体npmかDockerのプロキシ周りではないでしょうか。
以下のサイトが参考になるかと思います。
proxy環境でnpmを使う方法
日々プロキシで苦しむ人の為のプロキシ設定まとめ
最後に
Hubotを使いこなしたり、他のツールとの連携ができたら記事にしたいと思います。
よいRocket.Chatライフを!