NodeJS和Github:保证数据安全

时间:2013-12-04 00:07:29

标签: git node.js deployment github capistrano

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

对于New Relic,我有一个API密钥。对于Mailgun,我有一个登录名和密码。我显然不想将它们检入版本控制(并将它们推送到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"

然后,我的节点应用程序创建一个upstart作业,并将这些变量指定为环境变量:

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

Deploy.rb未检入版本控制,因此它似乎是保证安全的好方法。但是,我不确定这是否是正确的方法:它感觉非常hackish我确定有更好的方法来保证我的密码安全吗?感谢。

2 个答案:

答案 0 :(得分:2)

当我在思考同样的问题时,我发现this link非常有用。

答案 1 :(得分:1)

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

您可能会觉得有用的一件事是使用像nconf这样的模块来启用分层设置。然后,您可以轻松地将一个settings.json文件提交给具有本地开发凭据的repo,然后像提供环境变量或使用argv时那样轻松覆盖它。