【发布时间】: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