NodeJS和Github:保持数据安全

我正在开发一个连接到几个服务的Web应用程序,例如:New Relic,Mailgun。

对于New Relic,我有一个API密钥。 对于Mailgun,我有一个login名和密码。 我显然不想检查他们到版本控制(并推送他们到Github)。 存储库最终将被公开。

我部署了capistrano,现在在我的deploy.rb中有以下几行:

set :app_environment, "PORT=3005 GA_CODE=UA-123456-1 GA_URL=myawesomedomain.com NEW_RELIC_LICENSE_KEY=1234abc1234abc1234abc MAILGUN_USER=postmaster@myawesomedomain.com MAILGUN_PASS=321cba" 

然后用这些variables指定为环境variables,为我的节点应用程序创build一个新贵的作业:

NODE_ENV=production PORT=3005 /* more of the same */ node app.js

Deploy.rb没有签入版本控制,所以它似乎是保持安全的好方法。 但是,我不确定这是否是正确的方式来做到这一点:这感觉很不好,我相信有更好的方法来保证我的密码安全? 谢谢。

有很多方法可以做到这一点,我真的很喜欢使用环境variables。 特别是因为几乎所有节点平台作为服务托pipe提供商都可以很容易地提供每个应用程序的环境variables。

有一点你可能会觉得有用的是使用像nconf这样的模块来启用分层设置。 然后你可以很容易地拥有一个settings.json文件,这个文件被提交到具有本地开发证书的仓库中,然后像你现在提供一个环境variables或者使用argv一样轻易地覆盖它。

当我思考同样的问题时,我发现这个链接是非常有用的。