Una de las maneras más rápidas de probar algún proyecto personal o académico en un entorno lo más parecido al de producción es usar Heroku. Sin embargo, puede llegar a ser complicado memorizar la secuencia de comandos (y sus variaciones) que permiten desplegar y correr una app en sus servidores (tanto gratuitos como premium).
Personalmente, me parecía casi imposible encontrar unas indicaciones que realmente empezaran desde cero. Por eso he decidido realizar esta especie de cheatsheet o chuleta con los pasos a seguir desde que se tiene la app terminada y lista para desplegar (incluso sin repositorio git inicializado) hasta que está online.
Preparando las herramientas
Para seguir los pasos se suponen instalados y configurados los siguientes:
- Una app NodeJS, NodeJS y npm (Node Package Manager)
- Heroku Toolbelt
- Git Bash
Inicializando repositorio git
Para poder desplegar en Heroku, primero es necesario alojar nuestro proyecto en un repositorio git, desde el que poder mantenerlo y actualizarlo.
$ git init
Nos conviene introducir un fichero de nombre .gitignore
con una sola línea:
node_modules
De esta manera nos ahorraremos los ficheros que se crearán de manera automática en el servidor y aceleramos los procesos de actualización, ya que Git ignorará dichos ficheros que se encuentren en .gitignore.
Finalmente añadimos y realizamos el commit inicial del repositorio que se acaba de crear.
$ git add .
$ git commit -m "initial commit"
Iniciando Heroku
Una vez nuestro código se encuentra en un repositorio git, podemos subirlo a Heroku. Empezaramos iniciando sesión introduciendo nuestro usuario y contraseña mediant el comando:
$ heroku login
Para crear el repositorio remoto en Heroku usaremos:
$ heroku create app-name
Si omitimos app-name
se asignará un nombre a nuestra aplicación en Heroku que es posible cambiar más tarde de la siguiente manera.
$ heroku apps:rename new-app-name --app app-name
Desplegando la aplicación
Una vez se han hecho todos los cambios, se puede proceder a desplegar la apliación en Heroku.
$ git push heroku master
Listo. La aplicación debería estar ya corriendo en Heroku en la URL especificada por la consola. Sin embargo, para asegurarnos de que al menos una instancia de la aplicación se está ejecutando, podemos introducir el siguiente comando:
$ heroku ps:scale web=1
Si no se ha especificado concretamente (package.json > scripts > start), podemos indicar a Heroku mediante un fichero Procfile que, en el caso de una aplicación NodeJS como esta deberá contener la siguiente línea:
web: node app-name.js
Tras esto, la aplicación NodeJS que hemos desplegado en Heroku debería ser accesible desdce la URL proporcionada por Heroku.