Help us understand the problem. What is going on with this article?

1つのhubotを複数のslackにつなぐ(hubotを複数起動する)

More than 1 year has passed since last update.

hubotをすでにslackと連携していて、全く同じbotを別のslackに繋げたらいいな、

起動時のパスでトークン渡してるんだから、別のトークン渡せばいいんじゃない?と思ったんです。
ところがうまくいかなかったので調べました。

雰囲気から察するに、複数起動できない時やはslack adapter関係なさそうなので、
複数のhubotを起動したかったんだけどうまくいかない!っていう時はチェックしてみてください。

TL;DL

  • hubotを複数起動するにはPORT環境変数の指定が必要なことがある
  • bin/hubot はシェルスクリプトなのでお気に召すままカスタマイズ

やってみた

エラーがでて2個目が起動しません。

[Wed Apr 25 2018 13:35:47 GMT+0900 (JST)] ERROR Error: listen EADDRINUSE 0.0.0.0:8080
  at Object._errnoException (util.js:1022:11)
  at _exceptionWithHostPort (util.js:1044:20)
  at Server.setupListenHandle [as _listen2] (net.js:1367:14)
  at listenInCluster (net.js:1408:12)
  at doListen (net.js:1517:7)
  at _combinedTickCallback (internal/process/next_tick.js:141:11)
  at process._tickCallback (internal/process/next_tick.js:180:9)

ということでググってみると、
-デフォルトでport 8080として起動する
-変更するには環境変数PORTを設定する

ということがわかりました。

また、 hubot の bin/hubot は実はshell scriptなので、こいつの中で環境変数を設定してやればいいようです。
せっかくなので、起動用のスクリプト内でtoken指定やadapter 指定もしてしまいましょう。
ついでに npm installをこのスクリプトが毎回やっているのですが、起動が遅くなるので必要なタイミングで自分でnpm installできるなら消してしまっていいと思います。

そんな感じで出来上がった起動スクリプトがこんな感じ

hubot-a
#!/bin/sh

set -e

export PATH="node_modules/.bin:node_modules/hubot/node_modules/.bin:$PATH"
#他と被らないPORTを指定する
export PORT=8091 
#slack token
export HUBOT_SLACK_TOKEN=xxx-99999999999-XXXXXXXXXXXXXXXXXXXX
#-a(--adaptor)でアダプターを決め打ちする
exec node_modules/.bin/hubot --name "hubots" "$@" -a slack 

2個目のhubotについては、これをコピーしてslack tokenとportだけ書き換えればOKです。

参考

SSH - 一つのVPSサーバーでhubotを複数起動することは可能でしょうか?(112248)|teratail

studist
「伝えることを、もっと簡単に」をミッションにビジュアルSOPマネジメントプラットフォームのBtoB SaaS「Teachme Biz」を開発・運営するスタートアップ
https://medium.com/studist-dev
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした