Capistrano::FigaroYml
Capistrano tasks for handling figaro application.yml when deploying Rails 4+ apps.
Install
Add this to Gemfile:
group :development do
gem 'capistrano', '~> 3.3.0'
gem 'capistrano-figaro-yml', '~> 1.0.1'
end
And then:
$ bundle install
Setup and usage
make sure your local
config/application.ymlis not git tracked. It should be on the disk, but gitignored.populate production figaro settings in local
config/application.yml:production: secret_key_base: "d6ced..."add to
Capfile:require 'capistrano/figaro_yml'create figaro
application.ymlfile on the remote server by executing this task:$ bundle exec cap production setup
You can now proceed with other deployment tasks.
What if a new config is added to figaro file?
add it to local
config/application.yml:production: secret_key_base: "d6ced..." foobar: "some_other_secret"if you're working in a team where other people have the deploy rights, compare you local
application.ymlwith the one on the server. This is to ensure you didn't miss an update.copy to the server:
$ bundle exec cap production setupnotify your colleagues that have the deploy rights that the remote
application.ymlhas been updated so they can change their copy.
How it works
When you execute $ bundle exec production setup:
- figaro settings from your local
application.ymlare copied to the server. - only "stage" secrets are copied: if you are deploying to
production, only production secrets are copied there - on the server secrets file is located in
#{shared_path}/config/application.yml
On deployment:
- secrets file is automatically symlinked to
#{current_path}/config/application.yml
Configuration
None.
More Capistrano automation?
Check out capistrano-plugins github org.