Tom Scott edited this page Nov 2, 2012 · 3 revisions
Clone this wiki locally


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, and uses config/versions.yml to keep track of the currently deployed version.