2010-06-03 8 views
10

estoy usando GitHub de código y Heroku para la plataforma de despliegue para mi aplicación rieles.Implementación en Heroku con información de ajuste sensible

No quiero tener datos confidenciales en Git. Dichos datos incluyen configuraciones de archivos de base de datos (database.yml) y algunos otros archivos que tienen claves secretas de API.

Cuando despliego a heroku, ¿Cómo puedo lidiar con los archivos que no están bajo el control de revisiones.

Cuando uso Capistrano, puedo escribir algunos métodos de gancho, pero yo no sé qué hacer con Heroku.

Respuesta

19

Para Heroku, usted necesita tener database.yml bajo Git porque Heroku leerá automáticamente y crear una configuración de PostgreSQL desde allí.

Para obtener información confidencial, como las teclas API, Heroku proporciona config vars que son efectivamente variables de entorno. Se pueden añadir usando:

heroku config:add KEY=value 

— y acceder a ellos desde su aplicación usando:

ENV['KEY'] 

Tenga en cuenta que VARs de configuración se pueden enumerar, agregar y quitar utilizando el programa de línea de comandos heroku y que una vez establecidos, son persistentes.

+1

¿Cómo trataría, por ejemplo, con archivos de certificado .pem? Necesito hasta 4 claves RSA para PayPal, etc., que deseo comprometer con heroku pero no con github. – tmaximini

3

me gustaría crear una sucursal local, vamos a llamarlo secreto y hacer las modificaciones 'secretos' allí. Compromételos y NO los empujes a github.

Ahora solo pago y envío y seguir trabajando en la rama principal hasta listo para lanzar.

Para preparar el checkout liberación la rama secreta, fusionar la rama principal en él, y lo empuja al heroku como de costumbre.

(Por cierto: siempre olvido para volver a la rama de trabajo, escondite Git es su amigo en este caso)

Cuestiones relacionadas