Rain is a deployment engine that leverages Git and Capistrano to deploy a Rails app to several servers at once. Build for multiple environments, Rain deploys to a staging server first for optional "smoke testing" and tags the revision, then deploys that same tag to the production server. It is a safe, yet simple way of deploying your Rails app anywhere.
eLocal uses Rain to deploy our production application on eLocal.com as well as our API to api.elocal.com. We place conventions that we use on all our apps in the gem, but attempt to keep personal preferences separate from conventions that we believe all Rails shops should be using.
To set up Rain for your personal use, first generate the Versions File
and set up your Capistrano Tasks, then run
rain on stage to
do an initial deployment to the staging environment. When that script
has finished running, run
rain on production to deploy the same
created tag to production. This keeps both of your environments in sync,
config/versions.yml to keep track of the currently deployed