我正在尝试一个yesod应用程序,我最终会把它放在github上或类似的。
我将在谷歌使用oauth2,这意味着我必须提供电子邮件和秘密令牌。我显然不想要github。
在yesod脚手架应用程序中存储这些内容的好地方是什么?我希望将它存储在单独的config / secret.yml中,所以我可以把它放到git / mercurial的ignore文件中,永远不会提交它。
但我无法找到如何包含这样的文件。或者,如果这样的文件已经由yesod提供。 config / settings.yml似乎有可能,但是我想在github中有条目。
所以我的问题是,在一个yesod搭建的应用程序中。我可以在哪里存储密钥,我可以轻松地将其从版本控制系统中排除?
答案 0 :(得分:2)
有很多种方法,主要取决于你喜欢的devops /托管的味道。一种选择是在配置文件中放置一个虚拟值,并在运行时使用环境变量覆盖它(参见:https://github.com/yesodweb/yesod/wiki/Configuration#overriding-configuration-values-with-environment-variables)。您还可以使用额外的生产设置文件来覆盖默认配置文件中的值,这是测试套件的工作方式。一种完全不同的方法是在生产中使用像Vault这样的系统,并查询它以获得安全凭证。
编辑要说明其中一种方法:
使用您要赢取的设置创建一个新的YAML文件,例如在config/production.yml
:
copyright: This is a copyright notice for production
运行应用程序时,传入命令行参数,提供配置文件的位置