![](/img/trans.png)
[英]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.