【问题标题】:NodeJS and Github: keeping data safeNodeJS 和 Github:保证数据安全
【发布时间】:2013-12-04 00:07:29
【问题描述】:

我正在开发一个连接到几个服务的网络应用程序,例如: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"

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

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

Deploy.rb 没有检查到版本控制中,所以它似乎是保证事情安全的好方法。但是,我不确定这是否是正确的方法:感觉很hackish,我确信有更好的方法来保证我的密码安全?谢谢。

【问题讨论】:

  • 你考虑过使用配置文件吗?实际上有两个文件,一个 config.json.example 和一个 config.json,第一个显示可用的配置选项,第二个被实际解析但添加到你的 .gitignore,所以它不会被推送到 github
  • 我试过这个。问题是我在 Github 上的 capistrano 克隆。我还没有研究过其他部署方式……没有 Github。我想这是完全可能的?那可能会调查一下。

标签: git node.js deployment github capistrano


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2016-07-01
    • 1970-01-01
    • 2016-12-24
    • 2017-03-02
    • 2013-11-01
    • 2016-11-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多