Capistrano::Overrides

Provides tasks to copy override configuration files for different stages.

Installation

Add this line to your application's Gemfile:

gem 'capistrano-overrides'

And then execute:

$ bundle

Or install it yourself as:

$ gem install capistrano-overrides

Usage

1. Copying and decrypting secure tokens (encrypted files)

1.1 Usage

bundle exec cap production deploy:update_secure_overrides
  • The current state of the gem assumes that your encrypted files are:
    • In config/overrides/production
    • They have an asc extension; e.g., key.txt.asc
  • The task first checks whether the asc file has changed since the last deploy (using checksums) and only decrypt the asc file if the file has changed.
  • It will ask for password during deploy, decrypt the file in memory, and place it in {shared_path}/config/key.txt

1.1 Setup of encrypted file

Encrypt the file key.txt using a symmetric cipher (-c) and place it in key.txt.asc (-o)

gpg -a -c -o key.txt.asc key.txt

2. Copying override files for different stages.

2.1 Usage

bundle exec cap production deploy:copy_stage_configs
  • Setup your folder structure as follows:
/config/overrides/
                 /staging/*
                 /production/*
                 /alpha/*
  • Upon deploy of the stage, all the files in the stage folder will be copied in /config and overwrite any files with the same name in that folder.

Contributing

  1. Fork it ( https://github.com/[my-github-username]/capistrano-overrides/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request