2010-06-03 54 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的藏匿处是你在这种情况下的朋友)