Para desplegar una aplicación node.js en heroku es necesario crearla una cuenta o iniciar sesión.
Descarga la herramienta Heroku Toolbelt para poder utilizar la línea de comandos (CLI) de heroku.
Luego de la instalación desde la terminal ejecutar:
$ heroku login
Te solicitará las credenciales de tu cuenta.
Si aún no tienes un proyecto puedes clonar un ejemplo desde github.
$ git clone https://github.com/heroku/node-js-getting-started.git
$ cd node-js-getting-started
De lo contrario deberás seguir los siguientes pasos:
Crear un archivo llamado Procfile (sin extención), el contenido es el siguiente:
web: node index.js
Reemplazar index.js por el nombre de tu aplicación que puede ser server.js o app.js.
El archivo Procfile sirve para ejecutar el comando en el servidor de heroku.
En tu archivo package.json debes incluir esta línea:
"engines": {
"node": "0.10.x"
}
Con esa configuración indicas que versión de node ejecutar heroku en el servidor.
En tu aplicación debes definir el puerto en el que se ejecutará la aplicación.
app.set('port', (process.env.PORT || 5000))
En puerto 5000 es la alternativa si no se ha definido la variable de entorno PORT.
Es necesario que agregemos en el proyecto la referencia del repositorio de heroku.
$ heroku git:remote -a heroku-project-name
Donde heroku-project-name es el nombre del proyecto en heroku.
Con estos simples cambios en tu proyecto ya puedes hacer el despliegue.
Batará con agregar los cambios y hacer commit al repositorio.
$ git add .
$ git commit -m "Nuevos cambios"
$ git push heroku master
Notas:
- Es necesario que el push sea de la rama master, si el código que deseamos desplegar esta en otra rama por ejemplo develop es necesario ejecutar el comando: git push heroku develop:master.
- Si no has creado el proyecto en heroku desde la web entonces ejecuta el comando: heroku create --http-git y ya no será necesario el comando heroku git:remote -a heroku-project-name.
Fuente: https://devcenter.heroku.com/articles/getting-started-with-nodejs