[英]How can you set it up so that your project automatically updates on your production server when you make changes to a github repository?
[英]when you have secret key in your project, how can pushing to GitHub be possible?
我正在尝试将一个全新的,空的Rail 3.0.4项目推送到GitHub,但只是意识到cookie会话存储有一个密钥:
在config/initializers/secret_token.rb
NewRuby192Rails304Proj::Application.config.secret_token = '22e8...'
那么我们怎样才能避免它被推向GitHub呢? 我们可以忽略这个文件(使用.gitignore
),但没有这个文件,Rails应用程序根本不会运行(并且不是一个完整的Rails应用程序)。 或者通常,其他文件或框架也可能包含包含密钥的文件。 在这种情况下,推送到GitHub时应该如何处理?
添加你的回购:
secret_token.rb.template
), secret_token.rb
(就像一个加密文件,其秘密值已准备好被解码并放入secret_token.rb
文件中) 从那里,添加一个git属性自定义驱动程序 :
上面引用的脚本将是您的“ smudge
”脚本,它将在工作树的结帐时自动生成正确的文件。
将密钥放在某种外部配置文件中。 这就是我们的工作。
有几种外部工具可以做到这一点。 基本上,这些工具使用您的私有数据加密文件并将其存储在VCS中,但忽略原始的未加密文件。
blackbox
是最知名和最值得信赖的。 它使用gpg
加密你的文件,并使用git
和hg
。 顺便说一下,它是由SO团队创建的。 看看替代部分,它至少有五个其他工具。
我还可以推荐一款名为git-secret
的工具,它也使用gpg
。 但它只适用于git
。 主要优点是与其他工具相比,工作流程更容易。
如果它是私有存储库,您可能会冒险信任Github的安全/隐私..或者:
- 从服务器上的配置文件中提取数据。 例如,如果使用Capistrano进行部署,则可以添加从服务器上的某个位置复制配置文件的步骤。
- 使用环境变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.