Capistrano is really helpful in deploying applications. Its just basically one command line to execute. Writing the recipes themselves are also easy, but what's not explicitly written is the sequence of which the deploy process goes through.

I've been fixing my cap scripts and having a hard time with rails 3 and thin. Hence, I needed to look for the sequence and hook up the right calls there. I found it here: http://theadmin.org/articles/2010/06/24/capistrano-deploy-sequence/

deploy
|-- deploy:update
|---- deploy:update_code
|------ Code update based on the :deploy_via
|------ deploy:finalize_update
|---- deploy:symlink
|-- deploy:restart

Just thought that noting it down again would help others too.

PS: This is also a good gem to consider: http://capitate.rubyforge.org/index.html