Ruby on rails 逐步解释如何在部署到Heroku时使用Rails secrets.yml而不向公共repo公开密钥
我正在使用Rails 4.1.1和ruby 2.0.0 我目前忽略了gitignore for github中的secrets.yml文件 秘密。ymlRuby on rails 逐步解释如何在部署到Heroku时使用Rails secrets.yml而不向公共repo公开密钥,ruby-on-rails,heroku,secret-key,Ruby On Rails,Heroku,Secret Key,我正在使用Rails 4.1.1和ruby 2.0.0 我目前忽略了gitignore for github中的secrets.yml文件 秘密。yml development: secret_key_base: numb3r57ndl3tt3r5 test: secret_key_base: differentnumbersandletters13531515 production: secret_key_base: <%= ENV["SECRET_KEY_BASE']
development:
secret_key_base: numb3r57ndl3tt3r5
test:
secret_key_base: differentnumbersandletters13531515
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE'] %>
开发:
密钥库:numb3r57ndl3tt3r5
测试:
密钥库:不同的数字和字母13531515
制作:
secret\u key\u base:如果您使用这个密钥,这里有一个针对HEROKU的(希望很简单)分步指南,应该在将文件(secrets.yml)推送到GitHub或其他主机之前执行
*我不是这方面的专家,但这对我来说很有效,似乎是一个很好的解决方案。它结合了这个问题的答案以及这个问题的答案()的信息,提供了一个简单的指南:)
1) 将secrets.yml复制到另一个名为secrets\u backup.yml的文件中
您现在应该有两个与secrets.yml内容相同的文件
2) 将secrets\u backup.yml
添加到您的.gitignore
3) 将secrets.yml
中的文本更改为以下内容
development:
secret_key_base: <%= ENV["SECRET_KEY_BASE_DEV"] %>
test:
secret_key_base: <%= ENV["SECRET_KEY_BASE_TEST"] %>
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
开发:
机密密钥库:
测试:
机密密钥库:
制作:
机密密钥库:
4) cd
到命令行上的rails项目文件夹
5) 在终端类型heroku config:set SECRET\u KEY\u BASE\u TEST=
中,
其中,
应从机密备份.yml中的测试:机密密钥库:
复制并粘贴
6) 在终端类型heroku config:set SECRET\u KEY\u BASE\u DEV=
中,
其中
应从机密备份.yml中的开发:机密密钥库:
中复制和粘贴
7) 我的secrets.yml
文件已经有了密钥库而不是实际密钥,所以我怀疑你的也会有。但如果没有,请将SECRET_KEY_BASE变量设置为上面设置的其他两个变量
8) 将回购协议推送到GitHub和Heroku
9) 微笑吧,因为你是G.O.A.T,展示你甜蜜的网站 错别字,应该是而不是,所以我实际上在我的计算机上创建并保存了一个环境变量。如果关闭然后打开bash,我需要为我的机器再次设置变量吗?如果我关闭并打开电脑怎么办?此命令将在heroku设置并应用你的应用程序上的配置变量。因此,您设置的env var将保留在Heroku上,而不是本地shell上。因此,我只需按原样将secrets.yml文件上载到github,使用
。导出行的作用是什么?理想情况下,secrets.yml不应该在github上,因为它通常包含敏感数据(但这是您的决定,它是否机密)。但是我建议您使用您提到的heroku_secrets
gem,而不是将secrets.yml推送到github。导出行是如何设置shell会话环境变量.well crap的。我知道这一切应该如何运作,但我无法让它运作=(
RAILS_ENV=production rails s
heroku config:set SECRET_KEY_BASE=yourkeybasehere
production:
secret_key_base: yourkeybasehere
<!DOCTYPE html>
<html>
<head>
<title><%= ENV['USERNAME'] %></title>
</head>
<body>
<%= yield %>
</body>
</html>
development:
secret_key_base: <%= ENV["SECRET_KEY_BASE_DEV"] %>
test:
secret_key_base: <%= ENV["SECRET_KEY_BASE_TEST"] %>
production:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>