LoginSignup
6
4

More than 3 years have passed since last update.

Slackに代わるオンプレ型チャットツールRocket.Chatを導入する

Last updated at Posted at 2020-05-25

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ライフを!


  1. 公式GitHubです。 

  2. hubot-rocketchatはこちらから確認できます。 

  3. $ ip -4 aで取得できます。 

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4