パスワードやAPI Keyなど、gitにcommitしたくない情報の扱い方に関するパターンのメモです。今回はHerokuでアプリを動かす場合を想定しています。
設定するときのapplication.ymlの書き方はこのようになります。
rails以外でも使用可能です。
・config/secrets.ymlを使う
rails4.1以降で使用する事ができる、railsの機能です。
ただし、Herokuではconfig/secrets.ymlが必須になっており、secrets.ymlをgitignoreする方法が使えません。
Herokuに限定した場合はfigaroが簡単そうです。Heroku以外のプラットフォームも考えた場合はsecrets.ymlがサポートされている可能性もあるので、プラットフォームごとに検討が必要です。
Rails4.1のsecrets.ymlはfigaroと違うの? - PILOG
まとめ
figaroを使い、設定ファイルはgitignoreする。ローカルでの開発中
figaroというgemを導入します。その上でconfig/application.ymlに秘密にしたい情報を記載し、gitに追加されないよう、このファイルを.gitignoreに追加します。設定するときのapplication.ymlの書き方はこのようになります。
consumer_key: "password"Rubyから参照するときはENVから値を取り出します。
ENV["consumer_key"]
Heroku環境での設定
application.ymlの内容をherokuの環境変数に反映するには、以下のコマンドを使用します。figaro heroku:set -e production環境変数の一覧はこのコマンドで確認できます。
heroku configちなみに、環境変数を1つずつ設定する場合はこのコマンドです。
設定 heroku config:add KEY=VALUE 削除 heroku config:remove KEY
これ選択の設定管理方法
・dotenvを使うrails以外でも使用可能です。
・config/secrets.ymlを使う
rails4.1以降で使用する事ができる、railsの機能です。
ただし、Herokuではconfig/secrets.ymlが必須になっており、secrets.ymlをgitignoreする方法が使えません。
Herokuに限定した場合はfigaroが簡単そうです。Heroku以外のプラットフォームも考えた場合はsecrets.ymlがサポートされている可能性もあるので、プラットフォームごとに検討が必要です。
参考
Getting Started with Rails 4.x on Heroku | Heroku Dev CenterRails4.1のsecrets.ymlはfigaroと違うの? - PILOG