Развертывание в Heroku с чувствительной информацией настройки

Я использую GitHub для кода и Heroku для платформы развертывания для моего приложения rails.

Я не хочу иметь конфиденциальные данные в Git. Такие данные включают в себя параметры файла базы данных (database.yml) и некоторые другие файлы с секретными ключами API.

Когда я развертываю в heroku, как я могу обращаться с файлами, которые не находятся под контролем версий.

Когда я использую Capistrano, я могу написать некоторые методы hook, но я не знаю, что делать с Heroku.

Ответ 1

Для Heroku вам нужно иметь database.yml под Git, потому что Heroku автоматически прочитает его и создаст из него конфигурацию PostgreSQL.

Для другой важной информации, такой как ключи API, Heroku предоставляет конфигурационные файлы, которые являются эффективными переменными среды. Вы можете добавить их, используя:

heroku config:add KEY=value

— и получить доступ к ним из вашего приложения, используя:

ENV['KEY']

Обратите внимание, что конфигурационные vars могут быть перечислены, добавлены и удалены с помощью программы командной строки heroku и после установки они устойчивы.

Ответ 2

Я бы создал локальную ветвь, позвонил на SECRET и сделаю там "секретные" модификации. Зафиксируйте их и НЕ вставляйте их в github.

Теперь просто проверяйте и продолжайте работать с ведущей веткой до готовности к выпуску.

Чтобы подготовить выпускную версию ветки SECRET, объедините в нее главную ветку и нажмите ее на герою, как обычно.

(Кстати: я всегда забываю переключиться обратно на рабочую ветвь, git в этом случае твой друг - ваш друг)