As a subscriber to Railscasts Pro, I was pleasantly surprised when Ryan released a series of screencasts on Deploying to a VPS and Capistrano Recipes and discovered how eerily similar our strategies are for deploying a Rails app. Up to this point, I just had a text file that I copy and pasted commands from into the terminal. I do a few more things such as setting up a firewall with UFW, setting the timezone to UTC, having nginx detect the standard capistrano maintenance page and tailing logs. I pinged him on Twitter to get his approval for combining my code with his and releasing it as a gem and thus, cap_bootstrap was born.
There are a number of other solutions out there for server provisioning but my plan for this one is to keep it opinionated and lean with only the latest Rails best practices for deployment. Right now that means nginx, Unicorn and PostgreSQL on Ubuntu LTS.
I’m considering including Linode provisioning, MySQL, Apache/Passenger and multiple apps on a single server.