Pushdeploy

Pushdeploy is a very simple replacement for capistrano to deploy your rails applications. It works just as on heroku - you just say ‘git push’ and everything is done. No ‘cap deploy’ and no additional release folders.

How it works

  • It installs a post-receive hook in your git repository which runs ‘git pull’ and then runs ‘after_deploy.rb’ script.

  • after_deploy.rb runs bundler, migrate, restarts passenger and launches all additional commands you may specify.

Installation

Install is very easy and consist of two steps.

Let’s say you have two machines:

One is a development machine where you do all the development and from which you do git commits and pushes. Another one is a production machine where you push your commits and where your webserver is running.

  • On your development machine. Inside of your project root folder:

    gem install pushdeploy
    pushdeploy_create_config
    

It will create auto_deploy.rb script in your ‘config’ folder. You can edit it to add any additional commands you want to launch on your production machine after ‘git push’.

  • On your production machine. Inside of your project root folder:

    gem install pushdeploy
    pushdeploy_install_hook
    

It will install a post-receive hook in your git repository. First it will try to determine the path to your repo and if it can’t it will ask you some questions about your enironment. You can also launch in manual mode by using option ‘-m’.

Note, that if you’re using RVM you have to be in the gemset that is right for this current project. Or you have to run pushdeploy_install_hook with the option ‘-m’ and specify your gemset and ruby version manually.

Credits

Inspired and watched into code of github.com/tpope/hookup and github.com/remi/pushand