- Releases are managed using git. All code is deployed to a single directory, and git tags are used to manage different released versions. No
shareddirectories 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:installtask only runs if the app contains a
Gemfile.lockfile 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:editmake 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
- 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
$ bundle exec rake
Install and provision a test VM based on the Vagrantfile (assumes VirtualBox is installed)
$ bundle exec vagrant up
$ bundle exec cucumber
Recap is released under the MIT License.