Create new "room services" with a classic form in a popup dialog. Just select what events and terms you want Botler to listen to and then enter what you want Botler to say when that happens.
For you advanced users, you can use regular expression for smarter phrase detection and even use captured terms in your replies.
By default, Botler's replies are rendered just like your normal messages, which means that your @@mentions and emoticons will appear as expected. You can opt-in to use HTML rendering instead if you're a fancy hypertext wizard.
Run Botler in a Docker container
This is an experimental way for you to run Botler yourself using Docker, which could be useful for "Behind the Firewall" (on-premises) Hipchat Data Center deployments. The Dockerfile and Docker Compose file help you quickly download and bundle any needed dependencies.
If you'll be running this on a deployment without access to the internet, your process will look something like this:
- Clone this repository.
- Build a container from the repository.
- Pass the container to your on-premises deployment using whatever process is approved by your organization.
- Run the container on a host within your firewall. Optionally, you may also push the image to a Docker Registry, Docker Trusted Registry, or Docker Datacenter repository.
- Check for port conflicts on port 3024.
Botler will use this port, so you want it to be available. If you have a conflict, change the PORT variable in the
docker-composefile to something else.
- Clone this source repository to your local machine:
git clone https://bitbucket.org/khanhfucius/hipchat-botler.git
Build the container
- Change directories to the source you just cloned:
- Run the following command to use the Dockerfile in this repo to build a container with the latest version of Botler.
sudo docker build -t atlassianlabs/botler:latest .
Run the Botler service
Run the following command to use the Docker Compose file in this repo to build the Botler service.
docker-compose up -d
Check the logs to make sure everything went smoothly using the following command.
Verify that the following URL returns a valid
capabilities.jsonresponse. (Replace 'your-docker-host-fqdn' with your actual host.)
Install Botler on your Hipchat instance
Next, make your Dockerized version of Botler available on your Hipchat service.
Note: You must be at least a room admin to install an integration in a room. Only admins can install integrations globally.
- Log in to your Hipchat instance.
- If you're using Hipchat Cloud or Hipchat Server, click the Manage tab.
- If you're using Hipchat Data Center, log in to the web portal and click Add-ons in the left navigation.
- Click Install an add-on from a descriptor URL. (It's at the very bottom of the page.)
- In the dialog that appears, enter the URL you used above:
http://your-docker-host-fqdn:3024/Hipchat verifies the add-on capabilities, and adds it to your deployment.
Go to a chat room and type
To get started, clone this repository and install it's dependencies.
Now you'll need a local postgres database to store Botlers state.
Create a database with the name
You'll also need to change the username in
/config/config.js to one you have locally.
Now set up the database and migrations by running
npm run prestart
You will need to redo this anytime there is a database change.
You'll also need a local ngrok server running to reroute traffic from the internet to your local server.
Do this by running
ngrok http 3000
It should give you two ngrok urls. Copy the
https one (e.g.
/config.json in the
You can now build Botler itself using
npm run build
And run the server itself using
You should be able to confirm that your server is working by visiting
localhost:3000/atlassian-connect.json or the ngrok address from
You'll now be able to install your local addon into an actual Hipchat room by
going to the room and clicking
Install new integrations,
then clicking the
Install an integration from a descriptor URL link at the
bottom of the page.
When the modal opens, enter your ngrok url (e.g https://a194edea.ngrok.io/atlassian-connect.json) and follow the prompts.