আপনি অন্যান্য উত্তরের মতো প্রারম্ভিক ব্যবহার করতে পারবেন, প্রচলিত রেলগুলি 4.1+ উপায়টি হ'ল ব্যবহার করা config/secrets.yml
। রেল দল এটির প্রবর্তন করার কারণ এই উত্তরের ক্ষেত্রের বাইরে কিন্তু টিএল; ডিআর হ'ল secret_token.rb
সুরক্ষা ঝুঁকি হিসাবে টোকেনটি সোর্স নিয়ন্ত্রণের ইতিহাসে পরীক্ষা করা হয়েছে এবং একমাত্র সিস্টেম যা প্রয়োজন প্রোডাকশন সিক্রেট টোকেন হ'ল প্রোডাকশন অবকাঠামো।
আপনার এই ফাইলটি এমনভাবে যুক্ত করা উচিত .gitignore
যা আপনি config/database.yml
উত্স নিয়ন্ত্রণে যোগ করবেন না ।
রুবির জন্য তাদের বিল্ডপ্যাকconfig/database.yml
থেকে সেট আপ করার জন্য হিরোকুর নিজস্ব কোডটি উল্লেখ করে আমি তাদের রেপো কাঁটাচামচ করে শেষ করেছি এবং পরিবেশ পরিবর্তনশীল থেকে তৈরি করতে এটি সংশোধন করেছি ।DATABASE_URL
config/secrets.yml
SECRETS_KEY_BASE
যেহেতু এই বৈশিষ্ট্যটি রেল ৪.১ এ প্রবর্তিত হয়েছিল, তাই আমি ./lib/language_pack/rails41.rb
এই কার্যকারিতাটি সম্পাদনা করে যুক্ত করা উপযুক্ত বলে মনে করি ।
নিম্নোক্ত স্নিপেট পরিবর্তিত buildpack আমি আমার কোম্পানিতে নির্মিত থেকে:
class LanguagePack::Rails41 < LanguagePack::Rails4
# ...
def compile
instrument "rails41.compile" do
super
allow_git do
create_secrets_yml
end
end
end
# ...
# writes ERB based secrets.yml for Rails 4.1+
def create_secrets_yml
instrument 'ruby.create_secrets_yml' do
log("create_secrets_yml") do
return unless File.directory?("config")
topic("Writing config/secrets.yml to read from SECRET_KEY_BASE")
File.open("config/secrets.yml", "w") do |file|
file.puts <<-SECRETS_YML
<%
raise "No RACK_ENV or RAILS_ENV found" unless ENV["RAILS_ENV"] || ENV["RACK_ENV"]
%>
<%= ENV["RAILS_ENV"] || ENV["RACK_ENV"] %>:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
SECRETS_YML
end
end
end
end
# ...
end
আপনি অবশ্যই আপনার পরিবেশ পরিবর্তনশীলটি পড়ার জন্য অন্যান্য গোপনীয়তা (যেমন তৃতীয় পক্ষের এপিআই কী ইত্যাদি) যুক্ত করতে এই কোডটি প্রসারিত করতে পারেন:
...
<%= ENV["RAILS_ENV"] || ENV["RACK_ENV"] %>:
secret_key_base: <%= ENV["SECRET_KEY_BASE"] %>
third_party_api_key: <%= ENV["THIRD_PARTY_API"] %>
এইভাবে, আপনি খুব গোপনীয়ভাবে এই গোপনীয়তাটি অ্যাক্সেস করতে পারেন:
Rails.application.secrets.third_party_api_key
আপনার অ্যাপ্লিকেশনটিকে পুনরায় প্রকাশের আগে, আপনার পরিবেশের পরিবর্তনশীলটি প্রথমে সেট করতে ভুলবেন না:
তারপরে আপনার হেরোকু অ্যাপে আপনার পরিবর্তিত বিল্ডপ্যাকটি (বা আপনি আমার সাথে লিঙ্ক করতে আরও বেশি স্বাগত জানালেন) যুক্ত করুন (হিরোকুর ডকুমেন্টেশন দেখুন ) এবং আপনার অ্যাপ্লিকেশনটিকে পুনরায় চালু করুন।
বিল্ডপ্যাকটি প্রতিবার আপনি হিরোকুতে config/secrets.yml
যাওয়ার সময় ডায়নো বিল্ড প্রক্রিয়ার অংশ হিসাবে স্বয়ংক্রিয়ভাবে আপনার পরিবেশ পরিবর্তনশীল থেকে আপনার তৈরি করবে git push
।
সম্পাদনা: হেরোকুর নিজস্ব ডকুমেন্টেশনconfig/secrets.yml
পরিবেশ পরিবর্তনশীল থেকে পড়ার জন্য তৈরি করার পরামর্শ দেয় তবে এটি বোঝায় যে আপনার এই ফাইলটি উত্স নিয়ন্ত্রণে পরীক্ষা করা উচিত। আমার ক্ষেত্রে, এটি ভাল কাজ করে না যেহেতু আমি বিকাশ এবং পরীক্ষার পরিবেশগুলির জন্য হার্ডকডযুক্ত গোপনীয়তাগুলি রেখেছি যা আমি বরং চেকইন করব না।