Hubot Control
Control self-hosted Hubot like a boss!
Help Wanted!
This project is not being actively maintained. If you are interested and willing to help with maintenance, please respond here: #16
Installation
- Run DB migrations with
rake db:migrate
- Change
config.action_mailer.default_url_options
inconfig/environments/*
(optional) - Run it like a regular Rails 4 app. Try it out with
rails s
, run daemonized withunicorn_rails -p <port> -D
. - Owner of rails app process must have write permissions to
#{Rails.root}/hubots
and#{Rails.root}/scripts
, or just#{Rails.root}
- Use
[email protected]
/hubot
to log in
Tutorials
How to get Hubot on HipChat using Hubot Control on CentOS Linux
Book: Automation and Monitoring with Hubot
Automation and Monitoring with Hubot is available at Leanpub.
Running on Heroku
git clone [email protected]:spajus/hubot-control.git && cd hubot-control
heroku create --buildpack https://github.com/rtgibbons/heroku-buildpack-ruby-nodejs.git
git push heroku master
heroku config:add PATH=/app/node_modules/.bin:/app/bin:/app/vendor/bundle/ruby/2.0.0/bin:/usr/local/bin:/usr/bin:/bin
heroku run rake db:migrate
heroku open
Heroku support is still experimental, but you can find some helpful tips here.
Heroku demo: http://hubot-control-demo.herokuapp.com/ (usually broken due to periodic file system wipeouts, see issues/4)
Running with Docker
Prerequisites:
Start a Postgres instance
docker run --name hubot-control-db -d -e DB_USER="docker" -e DB="hubot_control" -e PASS="docker" hackedu/postgresql
Create a data-only container to store Hubots
docker run --name hubot-control-data -v /usr/src/hubot-control/hubots busybox
Run database migrations
docker run --rm --link hubot-control-db:db -e RAILS_DB_USERNAME="docker" -e RAILS_DB_PASSWORD="docker" hackedu/hubot-control bundle exec rake db:migrate RAILS_ENV=production
Start Hubot Control
docker run --name hubot-control -d --link hubot-control-db:db --volumes-from hubot-control-data -e RAILS_DB_USERNAME="docker" -e RAILS_DB_PASSWORD="docker" -p 3000:3000 hackedu/hubot-control
Hubot Control will now be running on port 3000 of your system. Whenever you
create a hubot , you'll want to restart Hubot Control and publish their HTTP
ports (-p
flag).
There's a few things to notice:
- The Postgres database is in a separate container than Hubot Control. When Hubot Control is stopped or removed, the database will be persisted in the Postgres container. You may want to map the Postgres data to a volume on your host. The Postgres image's documentation has more details on this (https://registry.hub.docker.com/u/paintedfox/postgresql/).
- The files for created hubots are stored in the
hubot-control-data
container. Do not delete this container unless you want to delete all of your hubots. - All of the application data for Hubot Control is stored in separate
containers, so we don't lose any data if we delete the
hubot-control
container.
Usage
- Check status page and install missing dependencies for Hubot
- Add hubot instance
- Configure the variables, add scripts
- Click on Hubot name in the sidebar to control it
- Develop scripts with built-in editor
Features
Check server compatibility
Create Hubot instances from web interface
Test your Hubot via interactive web shell
Control your Hubot
Edit pre-startup script
Manage and develop custom Hubot scripts
Edit variables and configuration files
Tail logs to troubleshoot problems
Contributing
- Fork it
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create new Pull Request