Update README
Remove all the generated stuff and add actually useful information for this particular bot.
This commit is contained in:
		
							parent
							
								
									ffb9b24c87
								
							
						
					
					
						commit
						9b189eaaa6
					
				
							
								
								
									
										215
									
								
								README.md
									
									
									
									
									
								
							
							
						
						
									
										215
									
								
								README.md
									
									
									
									
									
								
							| @ -1,219 +1,30 @@ | |||||||
| # hal8000 | # hal8000 | ||||||
| 
 | 
 | ||||||
| hal8000 is a chat bot built on the [Hubot][hubot] framework. It was | hal8000 is a chat bot built on the [Hubot](https://hubot.github.com/) | ||||||
| initially generated by [generator-hubot][generator-hubot], and configured to be | framework. It's currently running in some channels on Freenode. | ||||||
| deployed on [Heroku][heroku] to get you up and running as quick as possible. |  | ||||||
| 
 | 
 | ||||||
| This README is intended to help get you started. Definitely update and improve | ### Running hal8000 locally | ||||||
| to talk about your own instance, how to use and deploy, what functionality he |  | ||||||
| has, etc! |  | ||||||
| 
 | 
 | ||||||
| [heroku]: http://www.heroku.com |     npm start | ||||||
| [hubot]: http://hubot.github.com |  | ||||||
| [generator-hubot]: https://github.com/github/generator-hubot |  | ||||||
| 
 | 
 | ||||||
| ### Running hal8000 Locally | ### Incoming webhooks in development | ||||||
| 
 | 
 | ||||||
| You can test your hubot by running the following, however some plugins will not | With [ngrok](https://ngrok.com) installed (and the ngrok binary in your PATH), | ||||||
| behave as expected unless the [environment variables](#configuration) they rely | you can open an HTTP tunnel with: | ||||||
| upon have been set. |  | ||||||
| 
 | 
 | ||||||
| You can start hal8000 locally by running: |     npm run ngrok | ||||||
| 
 |  | ||||||
|     % bin/hubot |  | ||||||
| 
 |  | ||||||
| You'll see some start up output and a prompt: |  | ||||||
| 
 |  | ||||||
|     [Sat Feb 28 2015 12:38:27 GMT+0000 (GMT)] INFO Using default redis on localhost:6379 |  | ||||||
|     hal8000> |  | ||||||
| 
 |  | ||||||
| Then you can interact with hal8000 by typing `hal8000 help`. |  | ||||||
| 
 |  | ||||||
|     hal8000> hal8000 help |  | ||||||
|     hal8000 animate me <query> - The same thing as `image me`, except adds [snip] |  | ||||||
|     hal8000 help - Displays all of the help commands that hal8000 knows about. |  | ||||||
|     ... |  | ||||||
| 
 | 
 | ||||||
| ### Configuration | ### Configuration | ||||||
| 
 | 
 | ||||||
| A few scripts (including some installed by default) require environment | `run.sh` (which is used for `npm start`) has some default values for the | ||||||
| variables to be set as a simple form of configuration. | required ENV vars. Change it according to your needs, or use custom ENV vars | ||||||
| 
 | with the commands. | ||||||
| Each script should have a commented header which contains a "Configuration" |  | ||||||
| section that explains which values it requires to be placed in which variable. |  | ||||||
| When you have lots of scripts installed this process can be quite labour |  | ||||||
| intensive. The following shell command can be used as a stop gap until an |  | ||||||
| easier way to do this has been implemented. |  | ||||||
| 
 |  | ||||||
|     grep -o 'hubot-[a-z0-9_-]\+' external-scripts.json | \ |  | ||||||
|       xargs -n1 -i sh -c 'sed -n "/^# Configuration/,/^#$/ s/^/{} /p" \ |  | ||||||
|           $(find node_modules/{}/ -name "*.coffee")' | \ |  | ||||||
|         awk -F '#' '{ printf "%-25s %s\n", $1, $2 }' |  | ||||||
| 
 |  | ||||||
| How to set environment variables will be specific to your operating system. |  | ||||||
| Rather than recreate the various methods and best practices in achieving this, |  | ||||||
| it's suggested that you search for a dedicated guide focused on your OS. |  | ||||||
| 
 |  | ||||||
| ### Scripting |  | ||||||
| 
 |  | ||||||
| An example script is included at `scripts/example.coffee`, so check it out to |  | ||||||
| get started, along with the [Scripting Guide](scripting-docs). |  | ||||||
| 
 |  | ||||||
| For many common tasks, there's a good chance someone has already one to do just |  | ||||||
| the thing. |  | ||||||
| 
 |  | ||||||
| [scripting-docs]: https://github.com/github/hubot/blob/master/docs/scripting.md |  | ||||||
| 
 |  | ||||||
| ### external-scripts |  | ||||||
| 
 |  | ||||||
| There will inevitably be functionality that everyone will want. Instead of |  | ||||||
| writing it yourself, you can use existing plugins. |  | ||||||
| 
 |  | ||||||
| Hubot is able to load plugins from third-party `npm` packages. This is the |  | ||||||
| recommended way to add functionality to your hubot. You can get a list of |  | ||||||
| available hubot plugins on [npmjs.com](npmjs) or by using `npm search`: |  | ||||||
| 
 |  | ||||||
|     % npm search hubot-scripts panda |  | ||||||
|     NAME             DESCRIPTION                        AUTHOR DATE       VERSION KEYWORDS |  | ||||||
|     hubot-pandapanda a hubot script for panda responses =missu 2014-11-30 0.9.2   hubot hubot-scripts panda |  | ||||||
|     ... |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
| To use a package, check the package's documentation, but in general it is: |  | ||||||
| 
 |  | ||||||
| 1. Use `npm install --save` to add the package to `package.json` and install it |  | ||||||
| 2. Add the package name to `external-scripts.json` as a double quoted string |  | ||||||
| 
 |  | ||||||
| You can review `external-scripts.json` to see what is included by default. |  | ||||||
| 
 |  | ||||||
| ##### Advanced Usage |  | ||||||
| 
 |  | ||||||
| It is also possible to define `external-scripts.json` as an object to |  | ||||||
| explicitly specify which scripts from a package should be included. The example |  | ||||||
| below, for example, will only activate two of the six available scripts inside |  | ||||||
| the `hubot-fun` plugin, but all four of those in `hubot-auto-deploy`. |  | ||||||
| 
 |  | ||||||
| ```json |  | ||||||
| { |  | ||||||
|   "hubot-fun": [ |  | ||||||
|     "crazy", |  | ||||||
|     "thanks" |  | ||||||
|   ], |  | ||||||
|   "hubot-auto-deploy": "*" |  | ||||||
| } |  | ||||||
| ``` |  | ||||||
| 
 |  | ||||||
| **Be aware that not all plugins support this usage and will typically fallback |  | ||||||
| to including all scripts.** |  | ||||||
| 
 |  | ||||||
| [npmjs]: https://www.npmjs.com |  | ||||||
| 
 |  | ||||||
| ### hubot-scripts |  | ||||||
| 
 |  | ||||||
| Before hubot plugin packages were adopted, most plugins were held in the |  | ||||||
| [hubot-scripts][hubot-scripts] package. Some of these plugins have yet to be |  | ||||||
| migrated to their own packages. They can still be used but the setup is a bit |  | ||||||
| different. |  | ||||||
| 
 |  | ||||||
| To enable scripts from the hubot-scripts package, add the script name with |  | ||||||
| extension as a double quoted string to the `hubot-scripts.json` file in this |  | ||||||
| repo. |  | ||||||
| 
 |  | ||||||
| [hubot-scripts]: https://github.com/github/hubot-scripts |  | ||||||
| 
 |  | ||||||
| ##  Persistence |  | ||||||
| 
 |  | ||||||
| If you are going to use the `hubot-redis-brain` package (strongly suggested), |  | ||||||
| you will need to add the Redis to Go addon on Heroku which requires a verified |  | ||||||
| account or you can create an account at [Redis to Go][redistogo] and manually |  | ||||||
| set the `REDISTOGO_URL` variable. |  | ||||||
| 
 |  | ||||||
|     % heroku config:add REDISTOGO_URL="..." |  | ||||||
| 
 |  | ||||||
| If you don't need any persistence feel free to remove the `hubot-redis-brain` |  | ||||||
| from `external-scripts.json` and you don't need to worry about redis at all. |  | ||||||
| 
 |  | ||||||
| [redistogo]: https://redistogo.com/ |  | ||||||
| 
 |  | ||||||
| ## Adapters |  | ||||||
| 
 |  | ||||||
| Adapters are the interface to the service you want your hubot to run on, such |  | ||||||
| as Campfire or IRC. There are a number of third party adapters that the |  | ||||||
| community have contributed. Check [Hubot Adapters][hubot-adapters] for the |  | ||||||
| available ones. |  | ||||||
| 
 |  | ||||||
| If you would like to run a non-Campfire or shell adapter you will need to add |  | ||||||
| the adapter package as a dependency to the `package.json` file in the |  | ||||||
| `dependencies` section. |  | ||||||
| 
 |  | ||||||
| Once you've added the dependency with `npm install --save` to install it you |  | ||||||
| can then run hubot with the adapter. |  | ||||||
| 
 |  | ||||||
|     % bin/hubot -a <adapter> |  | ||||||
| 
 |  | ||||||
| Where `<adapter>` is the name of your adapter without the `hubot-` prefix. |  | ||||||
| 
 |  | ||||||
| [hubot-adapters]: https://github.com/github/hubot/blob/master/docs/adapters.md |  | ||||||
| 
 | 
 | ||||||
| ## Deployment | ## Deployment | ||||||
| 
 | 
 | ||||||
|     % heroku create --stack cedar | hal8000 is deployed by running Chef Solo against `dev.kosmos.org` with the | ||||||
|     % git push heroku master | cookbooks from our (private) [GitLab repo](https://gitlab.com/kosmos/chef). | ||||||
| 
 |  | ||||||
| If your Heroku account has been verified you can run the following to enable |  | ||||||
| and add the Redis to Go addon to your app. |  | ||||||
| 
 |  | ||||||
|     % heroku addons:add redistogo:nano |  | ||||||
| 
 |  | ||||||
| If you run into any problems, checkout Heroku's [docs][heroku-node-docs]. |  | ||||||
| 
 |  | ||||||
| You'll need to edit the `Procfile` to set the name of your hubot. |  | ||||||
| 
 |  | ||||||
| More detailed documentation can be found on the [deploying hubot onto |  | ||||||
| Heroku][deploy-heroku] wiki page. |  | ||||||
| 
 |  | ||||||
| ### Deploying to UNIX or Windows |  | ||||||
| 
 |  | ||||||
| If you would like to deploy to either a UNIX operating system or Windows. |  | ||||||
| Please check out the [deploying hubot onto UNIX][deploy-unix] and [deploying |  | ||||||
| hubot onto Windows][deploy-windows] wiki pages. |  | ||||||
| 
 |  | ||||||
| [heroku-node-docs]: http://devcenter.heroku.com/articles/node-js |  | ||||||
| [deploy-heroku]: https://github.com/github/hubot/blob/master/docs/deploying/heroku.md |  | ||||||
| [deploy-unix]: https://github.com/github/hubot/blob/master/docs/deploying/unix.md |  | ||||||
| [deploy-windows]: https://github.com/github/hubot/blob/master/docs/deploying/unix.md |  | ||||||
| 
 |  | ||||||
| ## Campfire Variables |  | ||||||
| 
 |  | ||||||
| If you are using the Campfire adapter you will need to set some environment |  | ||||||
| variables. If not, refer to your adapter documentation for how to configure it, |  | ||||||
| links to the adapters can be found on [Hubot Adapters][hubot-adapters]. |  | ||||||
| 
 |  | ||||||
| Create a separate Campfire user for your bot and get their token from the web |  | ||||||
| UI. |  | ||||||
| 
 |  | ||||||
|     % heroku config:add HUBOT_CAMPFIRE_TOKEN="..." |  | ||||||
| 
 |  | ||||||
| Get the numeric IDs of the rooms you want the bot to join, comma delimited. If |  | ||||||
| you want the bot to connect to `https://mysubdomain.campfirenow.com/room/42` |  | ||||||
| and `https://mysubdomain.campfirenow.com/room/1024` then you'd add it like |  | ||||||
| this: |  | ||||||
| 
 |  | ||||||
|     % heroku config:add HUBOT_CAMPFIRE_ROOMS="42,1024" |  | ||||||
| 
 |  | ||||||
| Add the subdomain hubot should connect to. If you web URL looks like |  | ||||||
| `http://mysubdomain.campfirenow.com` then you'd add it like this: |  | ||||||
| 
 |  | ||||||
|     % heroku config:add HUBOT_CAMPFIRE_ACCOUNT="mysubdomain" |  | ||||||
| 
 |  | ||||||
| [hubot-adapters]: https://github.com/github/hubot/blob/master/docs/adapters.md |  | ||||||
| 
 |  | ||||||
| ## Restart the bot |  | ||||||
| 
 |  | ||||||
| You may want to get comfortable with `heroku logs` and `heroku restart` if |  | ||||||
| you're having issues. |  | ||||||
| 
 | 
 | ||||||
| ## House Rules | ## House Rules | ||||||
| 
 | 
 | ||||||
| [Contributor Code of Conduct](http://contributor-covenant.org/version/1/2/0/) (TL;DR: Be excellent to each other.) | [Contributor Code of Conduct](http://contributor-covenant.org/version/1/2/0/) (TL;DR: Be excellent to each other.) | ||||||
| 
 |  | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user