2010-06-03 7 views
10

Ich verwende GitHub für Code und Heroku für die Bereitstellungsplattform für meine Rails-App.Bereitstellen mit sensiblen Einstellungsinformationen für Heroku

Ich möchte keine vertraulichen Daten unter Git haben. Zu diesen Daten gehören Datenbankdateieinstellungen (database.yml) und einige andere Dateien mit geheimen API-Schlüsseln.

Wie kann ich bei der Bereitstellung in heroku mit Dateien umgehen, die nicht der Versionskontrolle unterliegen?

Wenn ich Capistrano verwende, kann ich einige Hook-Methoden schreiben, aber ich weiß nicht, was ich mit Heroku machen soll.

Antwort

19

Für Heroku, werden Sie database.yml unter Git haben müssen, weil Heroku es automatisch gelesen wird und Erstellen Sie daraus eine PostgreSQL-Konfiguration.

Für andere vertrauliche Informationen wie API-Schlüssel bieten Heroku config vars, die effektiv Umgebungsvariablen sind. Sie können sie mit Hilfe von Add:

heroku config:add KEY=value 

— und greifen Sie aus Ihrer Anwendung mit:

ENV['KEY'] 

Beachten Sie, dass Config Vars aufgeführt werden können, hinzugefügt und entfernt mit dem heroku Kommandozeilen-Programm und das einmal festgelegt sind sie hartnäckig.

+1

wie würden Sie behandeln z.B. mit .pem Zertifikatsdateien? Ich brauche bis zu 4 RSA-Schlüssel für Paypal usw., die ich zu Heroku verpflichten möchte, aber nicht zu Github. – tmaximini

3

Ich würde einen lokalen Zweig erstellen, nennen wir es GEHEIM, und machen die 'geheimen' Änderungen dort. Verpflichte sie und schiebe sie NICHT nach Github.

Jetzt nur zur Kasse gehen und am Master-Zweig weiterarbeiten, bis es fertig ist.

Um das Release vorzubereiten, gehen Sie in den Zweig SECRET, führen Sie den Master-Zweig hinein und schieben Sie ihn wie gewohnt auf heroku.

(BTW: Ich habe immer wieder an den Arbeitszweig wechseln vergessen, git stash ist dein Freund in diesem Fall)

Verwandte Themen