Slack BotをHeroku上で動かす
HUBOTを使ったSlack Bot作成メモで作ったSlack Botをローカル以外の環境で動かしたくなったのでHeroku上で動かせるようにしてみます。
あらかじめHerokuにSign upしておきます。
Heroku Toolbelt のインストール
HerokuのCLIツールであるHeroku Toolbeltをインストールします
今回はMacを使っているのでこちらからダウンロード&インストールしました
https://toolbelt.heroku.com/osx
$ heroku version
heroku-toolbelt/3.34.0 (x86_64-darwin10.8.0) ruby/1.9.3
You have no installed plugins.
コマンドラインからHerokuにログイン
HerokuにSign upしたときのIDとPasswordでコマンドライン上からHerokuにログインする
$ heroku login
Enter your Heroku credentials.
Email: sojiro@example.com
Password (typing will be hidden):
Authentication successful.
hubotのディレクトリをGitHubにpush
HerokuにはGitHubを通じてデプロイするようなのでhubotのあるディレクトリをGitHubにpushしておく
$ cd ~/git/hubot/my_slack_bot/
$ git init
$ git add .
$ git commit -m 'initial commit'
$ git remote add origin git@github.com:your_name/slack_bot_repository # 自分で用意したslack bot用のGitリポジトリ
$ git push origin master
Herokuにデプロイ
Herokuにアプリケーションを作る
このときstackにcedarを指定する。アプリケーションの名前は指定しないとHerokuが勝手に名前をつけてくれる。
$ heroku create --stack cedar
Creating random_name... done, stack is cedar-10
https://random_name.herokuapp.com/ | https://git.heroku.com/random_name.git
Git remote heroku added
updating...done. Updated to 3.35.0
ここまできたらいよいよデプロイ
$ git push heroku master
Counting objects: 16, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (13/13), done.
Writing objects: 100% (16/16), 6.58 KiB | 0 bytes/s, done.
Total 16 (delta 0), reused 0 (delta 0)
remote: Compressing source files... done.
remote: Building source:
...
Herokuに設定を追加
HerokuにHubotとSlackの設定を追加していく
ここではHUBOTを使ったSlack Bot作成メモで払い出されたものを指定する
# HUBOT_SLACK_TOKENの設定
$ heroku config:add HUBOT_SLACK_TOKEN=xxxx-123456789-abcdefghijklmnopqrstuvwxyz
Setting config vars and restarting random_name... done, v4
HUBOT_SLACK_TOKEN: xxxx-123456789-abcdefghijklmnopqrstuvwxyz
# SlackのTeam設定
$ heroku config:add HUBOT_SLACK_TEAM=your_team_name
Setting config vars and restarting random_name... done, v5
HUBOT_SLACK_TEAM: your_team_name
# Botの名前の設定
$ heroku config:add HUBOT_SLACK_BOTNAME=your_bot_name
Setting config vars and restarting random_name... done, v6
HUBOT_SLACK_BOTNAME: your_bot_name
# HerokuアプリのURL設定
$ heroku config:add HEROKU_URL=http://random_name.herokuapp.com
Setting config vars and restarting random_name... done, v7
HEROKU_URL: http://random_name.herokuapp.com
HerokuのWebプロセスの起動
最後にHerokuのWebプロセスを起動する
$ heroku ps:scale web=1
Scaling dynos... done, now running web at 1:1X.
SlackにBotが現れれば成功!
今回はRedisを使わなかったのでHerokuのaddon設定やクレジットカードの登録無しでいけました