Capistrano as my default deployment tool

In the last post (a whiiile ago) I described my Git workflow to deploy my production server. One of the drawbacks was that everytime I pushed changes to the main repo I had to manually log in my Dreamhost shared host via SSH and then: 1) pull changes, 2) migrate database schema, 3) rebuild sphinx index, 4) restart passenger server. I wrote a bash script to get the job done, but it was prone to errors and not elegant, so I decided to give Capistrano a try.

After reading the Getting Started and From the Beginning guides I got a good idea of what to do next. Basically my setup is as follows:

File: benoror@macmini:~/simpleapp/Capfile


File: benoror@macmini:~/simpleapp/config/deploy.rb


So now when I make changes to the code I simply follow this workflow in my local machine:


  1. git add . && git commit -a -m "Commit Msg" && git push
  2. cap deploy
  3. cap deploy:migrate


That's it!


The next step is to setup a staging server, until then see you soon ...