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.
- 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
orshared
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 aGemfile.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
andenv: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 http://gofreerange.com/recap/docs.
- 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.
-
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
This defaults to publishing to gofreerange.com but that can be customised by setting the RECAP_DOCS_HOST
environment variable.
The fl-rocco
gem relies on the pygments
Python package being installed (pip install pygments
); more specifically the pygmentize
binary being available in the PATH
.
$ bundle exec 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.