It wasn’t difficult, but like they say, blog about what would have helped your previous self.
Presumbaly, you’re here because you have a rad bot you built using Botkit, and you’re looking for a bit of guidance on getting it out of your local environment and into the real world using Heroku.
If you’re not already familiar with Heroku, or just need a refresher, check out their tutorial on deploying Node.js apps.
Quick tip: from the command line, using Homebrew on OSX, run brew install heroku-toolbelt
and then heroku login
to get started.
After deploying my working-locally bot using the Heroku tutorial, I kept getting a port error, which DarrenN mentioned in an issue filed on Github. Following benbrown’s suggestions, I first tried running my bot as a background process [as specified in my Procfile], but that didn’t work, likely because I did something wrong. Trying out the second suggestion, I set up a web server using some of Botkit’s built-in functionality. Works as advertised!
The next time I deploy a bot using Botkit and Heroku [which will likely be sooner than later], this is the process I’ll use:
Set my token
environmental variable on my Heroku app using Heroku’s toolbelt: heroku config:set token=all-sorts-of-alphanumeric-biz-from-slack
At the top of my snark-bot.js
file, set up the web server:
web: node snark-bot.js
.env
file containing my sandbox-Slack token and the heroku local
command [more info here]. That .env
file will look something like this:token=different-sorts-of-alphanumeric-biz-from-my-sandbox-slack
When everything is working as expected using heroku local
, I’ll then git push heroku feature-branch:master
and check the logs using heroku logs --tail
while testing the newly-hosted-on-Heroku bot to confirm that everything still looks good.
My last step will be merging feature-branch
into master
, and redeploying to Heroku using git push heroku master
.
Easy peasy, chicken breezy.