Simpler and faster capistrano deployment (canonical repo is at
Pull request Compare This branch is 2 commits ahead of tomafro:master.


Recap is an opinionated set of Capistrano deployment recipes, that use git's strengths to deploy applications and websites in a fast and simple manner.

Features & Aims

  • Releases are managed using git. All code is deployed to a single directory, and git tags are used to manage different released versions. No releases, current or shared directories are created, avoiding unnecessary sym-linking.
  • Deployments do the minimum work possible, using git to determine whether tasks need to run. e.g. the bundle:install task only runs if the app contains a Gemfile.lock file and it has changed since the last deployment.
  • Applications have their own user account and group, owning all of that application's associated files and processes. This gives them a dedicated environment, allowing environment variables to be used for application specific configuration. Tasks such as env, env:set and env:edit make setting and changing these variables easy.
  • Personal accounts are used to deploy to the server, distinct from the application user. The right to deploy an application is granted simply by adding a user to the application group.


For more information, the main documentation can be found at


  • Recap's built-in tasks only support deploying to Ubuntu
  • Your user account (as opposed to the application account) must be able to sudo
  • Your user account should be able to connect to the remote git repository from your deployment server(s)


The source code is available on Github.

Running Tests

  • Run the following commands from the checked out project directory.
  • Install dependencies (assumes the bundler gem is installed).

    $ bundle install

  • Run specs

    $ bundle exec rake

  • Install VirtualBox - only necessary if you want to run Cucumber features.

  • Install and provision a test VM based on the Vagrantfile (assumes VirtualBox is installed)

    $ bundle exec vagrant up

  • Run features

    $ bundle exec cucumber

Publishing documentation

This defaults to publishing to but that can be customised by setting the RECAP_DOCS_HOST environment variable.

$ rake doc publish

NOTE. The recap docs rely on a rocco.css file being available at #{RECAP_DOCS_HOST}/stylesheets/rocco.css. This was added to our site in e41bac


Recap was written by Tom Ward and the other members of Go Free Range.


Recap is released under the MIT License.