This is an instance of GitHub's Campfire bot, hubot. It's pretty cool.
This instance is deployed on the ACM IRC Server for our IRC uses.
You'll need to install the necessary dependencies for hubot. All of those dependencies are provided by npm.
Hubot has a HTTP listener which listens on the port specified by the PORT
environment variable.
For the lulu implementation, it is recommended to run it with --disable-httpd
since irc.case.edu is a public-facing server.
The hubot-redis-brain package is currently activated for lulu. This requires
an implementation of Redis in some way or another and the appropriate configuration. For further information, see hubot-redis-brain doc.
For remote redis, the URL must be formatted as redis://:[email protected]:port/prefix
by experimental testing. Note the unexpected additional :.
To get started with hubot, you will need node.js and its associated package
manager npm. Downloading node.js directly or through your
favorite package manage, likely as nodejs and npm.
Once you have the runtime installed, fork this repo and clone to
your development computer. In the root of the repo, run npm install to install
all of the dependencies in package.json.
With all the dependencies installed, run bin/hubot to start shell interaction.
You'll see some start up output about where your scripts come from and a prompt.
Some status or error messages are expected if environment variables are not
fully configured.
Then you can start interacting with hubot by typing anything that may be picked
up by a listener. Run hubot help .* (the shell will not respond to the name
lulu) to generate a list of available commands. This may have a very long
output due to the number of scripts installed.
Adapters are the interface to the service you want your hubot to run on. This can be something like Campfire or IRC. There are a number of third party adapters that the community have contributed. Check the hubot wiki for the available ones.
As our IRC bot, lulu expects to be run with the IRC adapter as listed in
package.json under the dependencies. Part of lulu's run script should
include running it as:
% bin/hubot -a irc [... other options]
Hubot is now able to load scripts from third-party npm packages! To enable
this functionality you can follow the following steps.
- Add the packages as dependencies into your
package.json npm installto make sure those packages are installed
More easily, you can skip manually managing the dependency list and manage the
correct dependencies using npm install --save [package-name]. This will update
package.json for you. However, if there are version restrictions on the
dependency you are adding, be sure to update the package.json to reflect the
requirement.
To enable third-party scripts that you've added you will need to add the package
name as a double quoted string to the external-scripts.json file in this repo.
Any new scripts that you want to make generally available should be implemented
as independent repositories that are connected to npm.
Check DOCUMENTATION for information on deploying lulu. This generally will
require setting the appropriate environment variables before running bin/hubot
with any appropriate parameters.
Deploying lulu currently expects the following environment variables to be set. This should be done by the un-committed script with requisite keys/passwords/tokens that lives on irc.case.edu.
HUBOT_HOMEHUBOT_IRC_NICKHUBOT_IRC_ROOMSHUBOT_IRC_SERVERHUBOT_DNSIMPLE_USERNAMEHUBOT_DNSIMPLE_API_TOKENHUBOT_YOUTUBE_API_KEYHUBOT_YOUTUBE_DETERMINISTIC_RESULTS(optional flag)REDIS_URL(optional if redis is hosted atlocalhost:6379relative to lulu)NAMER_NAMENAMER_NICKHUBOT_WEB_TITLE_LEN(optional, int for maximum length of web titles. defaults to 200)
For a full list of environment variables detected that might be used, see this page.