NodeJS y Github: mantener los datos seguros

Estoy desarrollando una aplicación web que se conecta a un par de services, por ejemplo: New Relic, Mailgun.

Para New Relic, tengo una key API. Para Mailgun, tengo un nombre de usuario y una contraseña. Obviamente no quiero registrarlos en el control de versiones (y empujarlos a Github). El repository eventualmente será público.

Implemento con capistrano, y tengo la siguiente línea en mi deploy.rb en este momento:

set :app_environment, "PORT=3005 GA_CODE=UA-123456-1 GA_URL=myawesomedomain.com NEW_RELIC_LICENSE_KEY=1234abc1234abc1234abc MAILGUN_USER=postmaster@myawesomedomain.com MAILGUN_PASS=321cba" 

Esto luego crea un trabajo advenedizo para mi aplicación de nodo con las variables especificadas como variables de entorno:

NODE_ENV=production PORT=3005 /* more of the same */ node app.js

Deploy.rb no está registrado en el control de versiones, por lo que parecía una buena manera de mantener las cosas seguras. Sin embargo, no estoy seguro de si esta es la forma correcta de hacerlo: se siente bastante hackish y estoy seguro de que hay mejores forms de mantener seguras mis passwords. Gracias.

Hay muchas maneras de hacerlo, y realmente me gusta utilizar variables de entorno como usted. Especialmente porque casi todos los proveedores de alojamiento de plataforma de nodo como service hacen que sea muy fácil proporcionar variables de entorno por aplicación.

Una cosa que puede serle útil es usar un module como nconf para habilitar la configuration jerárquica. Luego puede tener fácilmente un file settings.json que está comprometido con el repository que tiene las cnetworkingenciales de desarrollo local y luego anularlo fácilmente como lo hace ahora cuando proporciona una variable de entorno o usa argv.

Encontré este enlace realmente útil cuando pensaba en el mismo problema.