2010-06-03 7 views
10

J'utilise GitHub pour le code et Heroku pour la plate-forme de déploiement de l'application mes rails.Déploiement sur Heroku avec des informations de paramétrage sensibles

Je ne veux pas avoir de données sensibles sous Git. Ces données incluent les paramètres du fichier de base de données (database.yml) et d'autres fichiers contenant des clés API secrètes.

Lorsque je déploie sur heroku, comment puis-je gérer les fichiers qui ne sont pas sous contrôle de révision. Quand j'utilise Capistrano, je peux écrire des méthodes de hook, mais je ne sais pas quoi faire avec Heroku.

Répondre

19

Pour Heroku, vous aurez besoin d'avoir database.yml sous Git parce que Heroku lit automatiquement et créer une configuration PostgreSQL à partir de celle-ci.

Pour les autres informations sensibles telles que les clés API, Heroku fournit vars de configuration qui sont efficacement des variables d'environnement. Vous pouvez les ajouter à l'aide:

heroku config:add KEY=value 

— et d'y accéder à partir de votre application à l'aide:

ENV['KEY'] 

Notez que vars de configuration peuvent être répertoriés, ajoutés et supprimés à l'aide du programme de ligne de commande heroku et que Une fois définis, ils sont persistants.

+1

comment réagiriez-vous par exemple avec des fichiers de certificat .pem? J'ai besoin de 4 clés RSA pour paypal etc. que je veux commettre à heroku mais pas à github. – tmaximini

3

Je créerais une branche locale, appelons-la SECRET, et y apporterions les modifications 'secrètes'. Engagez-les et NE les poussez PAS à github.

Maintenant, il suffit de passer à la caisse et continuer à travailler sur la branche maîtresse jusqu'à ce que prêt à libérer.

Pour préparer la sortie, passez en revue la branche SECRET, fusionnez la branche master dans celle-ci, et poussez-la à heroku comme d'habitude.

(BTW: J'oublie toujours de revenir à la branche de travail, git stash est votre ami dans ce cas)

Questions connexes