First, install all the required dependencies with npm install.
npm installThen, see .env.sample for a list of environment variables that should be set.
cp .env.sample .envBy default, hackbot will run with all the plugins in the scripts/ directory and all the plugins referenced by external-scripts.json. If you only want to test one plugin, move all other plugins to disabled_scripts/ and only include the minimal required external scripts.
mv scripts/* disabled_scripts/ mv disabled_scripts/my_plugin.js scripts/ echo'["hubot-conf","hubot-help"]'> external-scripts.jsonIf your plugin requires environment variables, be sure to put them in .env. See Configuration for more details.
vi .env source .envFinally, run hackbot locally with npm run dev. You will see some logging info and a message prompt.
$ npm run dev [Set Jul 22 2017 23:16:06 GMT-0400 (EDT)] INFO Using default redis on localhost:6379 hackbot>Now you can interact with hackbot by typing hackbot help or any other supported command.
$ npm run dev [Set Jul 22 2017 23:16:06 GMT-0400 (EDT)] INFO Using default redis on localhost:6379 hackbot> hackbot ping hackbot> PONGIf you make changes, quit with Ctrl+C and restart hackbot with npm run dev.
Most of the plugins in scripts/ use hubot-conf to access configuration values from the HackMIT Slack. That means that in order to run them locally, you need to copy some configuration values from Slack into your .env.
To do this, in Slack #botspam type hackbot conf dump. Find the variables you need, and copy them into .env.
Be sure to follow hubot-conf convention, mapping package.name.property.name from Slack to HUBOT_PACKAGE_NAME_PROPERTY_NAME in .env.
| Source | Key name | Example usage |
|---|---|---|
| Slack | example.hello | example.hello = "hello" |
| Environment variable | HUBOT_EXAMPLE_HELLO | export HUBOT_EXAMPLE_HELLO="hello" |
You can see some more example scripts here.