StompBox

TorqueBox StompBox

StompBox is a simple Sinatra app that can be used to manage deployments on TorqueBox by accepting commit notifications from GitHub. It provides a user interface for managing one-click deployment and undeployment of your github repositories to TorqueBox for specific branches and commit points.

StompBox is useful for testing and development environments where your code is changing frequently and you want to quickly deploy working branches and staging instances. It integrates with your GitHub repositories to enable extremely quick and simple app deployment of any Rack-based application. And it does all this on top of the industrial-strength TorqueBox platform.

Installation

StompBox can either be installed and deployed as a gem, or installed directly from the application sources. In either case, you will need to have the current version of TorqueBox installed with the following environment variables set.

TORQUEBOX_HOME=/path/to/torquebox/installation
JRUBY_HOME=$TORQUEBOX_HOME/jruby
JBOSS_HOME=$TORQUEBOX_HOME/jboss
PATH=$JRUBY_HOME/bin:$PATH

As a Gem

First, install the gem:

jruby -S gem install torquebox-stompbox

Note: the torquebox-stompbox gem cannot be made available on rubygems.org until an official release of the torquebox gems is made. Until then, you will need to check out the source and run jruby -S rake install to install the gem.

Then, deploy stompbox using the stompbox command.

jruby -S stompbox deploy --secure=username:password --setup-db --auto-migrate

This will deploy stompbox to your current TorqueBox deployment directory, secure the application with JAAS, create the required database, and run a migration to create the tables and such. To check if your installation was successful, you can use the info command.

jruby -S stompbox info

From the Source

Until TorqueBox CR1 has been released, this is the required method for installation.

Clone the git repo, then run bundler to install the needed gems (listed in the Gemfile):

jruby -S gem install bundler # if you haven't done so already
jruby -S bundle install

Once that's done, you can either deploy a deployment descriptor pointing at the checked out repo:

jruby -S rake torquebox:deploy

or archive and deploy it as a .knob (zipfile):

jruby -S rake torquebox:deploy:archive

By default, StompBox is deployed to the /stompbox context (see the context: setting in torquebox.yml).

Configuration

StompBox's configuration options are typically set when installing using the deploy command. To see the options just run:

jruby -S stompbox help deploy

That's useful if you're not going to be changing things. But if you'd like to change any of these settings after deploying stompbox, you'll need to update the torquebox-stompbox-knob.yaml file which is created for you on deployment. You can find this in $TORQUEBOX_HOME/apps.

Usage

Once you've got stompbox configured and deployed, you can start by telling it what repositories and branches you want to track. Then, from GitHub, browse to the repository admin screen for one of the repositories you specified in config/stompbox.yml. Select "Service Hooks" -> "Post Receive URLs" and enter your push URL. It should look something like this.

http://mydomain.com/stompbox/push/3821A95D456134214FAD6FA91A2BAFE574D47151

You can find this URL by clicking on the upper right menu item "GitHub Push URL".

Note: If your GitHub repository is private, you'll need to ensure that the running TorqueBox process has read access. This is typically accomplished by configuring GitHub deploy keys. We'll leave this as an exercise for the reader. But if you get stuck, there are lots of ways to get help from the TorqueBox team listed on our community page.

Contributing

Bug reports, feature requests, and patches are always welcome! See our community page on how to get in touch with the TorqueBox crew.

License

Copyright 2011 Red Hat, Inc.

Licensed under the Apache Software License version 2.