LoginSignup
112
104

More than 5 years have passed since last update.

API key等をgithubで公開しない方法(rails,heroku)

Last updated at Posted at 2017-06-27

Twitter bot等をRailsで作った際にGitHubにアクセストークン等が公開されてしまうので、それを回避しつつHeroku上で動かすということができないか考えていました。  
また、今回はHerokuとGitHubが紐づけされていて、Automatic deploysが有効になっていることを想定しています。

gemのダウンロード

$ gem 'dotenv-rails'

のみです。

.envファイル作成

ルート直下に.envという名前でファイルを作成しそこに環境変数を記述していきます。

.env
CONSUMER_KEY = "hogehoge"
CONSUMER_SECRET = "fugafuga"

ACCESS_TOKEN = "hogefuga"
ACCESS_TOKEN_SECRET = "fugahoge"

すると、どこからでも以下のようにアクセスできます。


puts ENV["CONSUMER_KEY"] #=> "hogehoge"

.gitignoreに.envを追加

.gitignoreに.envを書き足し保存します。
こうすることにより.envがGitのトラッキングの対象外になるのでGitHubにpushした際に.envは上がらなくなります。

既にpushしたことがあった場合は、

$ git rm --cached .env

をすれば管理対象から除外できます。

以上により.envファイルをGitHub上で公開せずに済みます。

Herokuでの設定

上記のままではHeroku上にも.envが無いためエラーが起きてしまいます。
そこでheroku-configというプラグインを使用し、Herokuに直接.envを上げます。

$ heroku plugins:install heroku-config
$ heroku config:push

これでHeroku上の環境変数の設定を行うことができました。

$ heroku config
$ heroku config:set ENV_VAR_NAME="value"

のように直接値を変更しました。
このように一つ一つ直接編集することは可能ですが、多くの環境変数を使う際には.envでまとめてあげたほうが楽ですよね。

参考リンク

http://qiita.com/colorrabbit/items/18db3c97734f32ebdfde
http://qiita.com/closer/items/f8d8ba00ae86d7051764

112
104
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
112
104