Развертывание в 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 в этом случае твой друг - ваш друг)