Использование credentials.yml с heroku on Rails 5.2 - PullRequest
2 голосов
/ 26 мая 2020

У меня есть приложение на Rails 5.2, и ранее оно размещалось на DigitalOcean, но мне нужно разместить его на heroku. Я читал, что heroku не может читать Credentials.yml, потому что он находится на gitignore, и, конечно же, я не хочу, чтобы он publi c.

Итак, мои ключевые переменные такие (и пример с redis):

host: Rails.application.credentials.redis_host,
  password: Rails.application.credentials.redis_password

Heroku не может это прочитать. Итак, мой вопрос: как лучше всего изменить это в переменных heroku ENV? Нужно ли мне редактировать все мои текущие ключи (их около 340) на ENV ['SOMEKEY']?

Буду признателен за вашу помощь!

1 Ответ

2 голосов
/ 26 мая 2020

Создайте credentials.yml и мастер-ключ:

rails credentials:edit 

Отредактируйте учетные данные:

EDITOR=vim rails credentials:edit

РАБОТА С VIM:

  • Для вставки
  • Нажмите i // Сделайте необходимое редактирование
  • Для выхода Нажмите Es c
  • : wq // для выхода и сохранения
  • : q! // для выхода без сохранения

ПРИМЕР, КАК CREDENTIALS.YML может выглядеть:

development:
   github:
      client: acascascsacascascasc
      secret: vdsvsvg34g34g
production:
   github:
      client: 34g3rvv
      secret: erberb43

НАЙТИ УЧЕТНЫЕ ДАННЫЕ:

rails c
Rails.application.credentials.dig(:aws, :access_key_id)

или если env используется переменная

Rails.application.credentials[Rails.env.to_sym][:aws][:access_key_id]

Файл credentials.yml НЕ ДОЛЖЕН находиться в gitignore.

Главный ключ, который расшифровывает учетные данные, ДОЛЖЕН находиться в gitignore.

Чтобы установить мастер-ключ на производстве:

heroku config:set RAILS_MASTER_KEY=123456789

или

heroku config:set RAILS_MASTER_KEY=`cat config/master.key`

Это все, что вам нужно знать об учетных данных в Ruby на Rails. Удачи :)

...