2010-06-03 53 views
10

我使用GitHub作爲代碼,Heroku作爲我的rails應用程序的部署平臺。使用敏感的設置信息部署到Heroku

我不想在Git下有敏感數據。這些數據包括數據庫文件設置(database.yml)和一些其他具有祕密API密鑰的文件。

當我部署到heroku時,如何處理不受版本控制的文件。

當我使用Capistrano時,我可以編寫一些鉤子方法,但我不知道如何處理Heroku。

回答

19

對於Heroku上,你需要有database.yml下的Git的Heroku因爲會自動讀取並從它創建一個PostgreSQL配置。

對於其他敏感信息,如API密鑰,Heroku提供了配置變量,這些是有效的環境變量。您可以通過添加它們:

heroku config:add KEY=value 

—和使用您的應用程序中訪問它們:

ENV['KEY'] 

注意配置瓦爾可以列出,添加和使用heroku命令行程序中刪除,並且一旦設定他們是持久的。

+1

你會如何處理例如與.pem證書文件?我需要多達4個RSA密鑰爲貝寶等,我想承諾heroku,但不是github。 – tmaximini 2013-04-22 15:38:47

3

我會創建一個本地分支,我們稱它爲SECRET,然後在那裏進行'祕密'修改。提交它們,不要將它們推送到github。

現在只需結賬並繼續在主分支上工作直到準備發佈。

要準備發佈檢出SECRET分支,將主分支合併到它,並像往常一樣推送到heroku。

(順便說一句:我總是忘記切換回工作分支,git的藏匿處是你在這種情況下的朋友)