Desplegando apps en Meteor con Heroku y mLab

Mario Blas
Capua
Published in
3 min readNov 8, 2016

--

A continuación veremos como desplegar nuestra aplicación Meteor en 6 sencillos pasos. Los servicios que usaremos para ello son:

Heroku, una plataforma como servicio (PaaS) que permite crear, ejecutar y escalar aplicaciones web, su medio principal para el despliegue es git.

mLab, una plataforma de base de datos como servicio (DBaaS) para alojar y gestionar bases de datos MongoDB, actualmente ofrece alojamiento en AWS, Azure y Google.

0. Requisitos para empezar

1. Crear la Base de datos

Creamos una base de datos Mongo con el proveedor y plan que más se adapte a nuestras necesidades.

En el apartado Single-node el plan Sandbox es gratuito y ofrece 0.5Gb aunque no se aconseja para producción.

Asignamos un nombre a la base de datos, pulsamos en Create new MongoDB deployment y una vez creada entramos en ella.

Para terminar hacemos click en la pestaña Users, creamos un nuevo usuario y listo.

En la parte superior podemos ver nuestra MongoDB URI, que será la que usaremos más adelante y que tiene un aspecto parecido a lo siguiente:

mongodb://<dbuser>:<dbpassword>@ds<012345>.mlab.com:<12345>/<dbname>

2. Autenticarse con Heroku Toolbelt

Desde la terminal nos identificamos con nuestras credenciales usando el siguiente comando:

$ heroku login

3. Crear la app en Heroku

Nos situamos en nuestro proyecto git y creamos la aplicación en Heroku indicando el nombre que deseamos.

Además podemos definir el nombre con el que vamos a referirnos a nuestro repositorio remoto y la región donde queremos alojar nuestra aplicación (por defecto son heroku y us respectivamente).

$ cd <my-git-project>$ heroku apps:create <app-name> --remote <remote-name> --region <us|eu>

4. Aplicar un buildpack

El buildpack preparará nuestra aplicación Meteor para ser ejecutada por Heroku.

En este ejemplo vamos a utilizar el genial meteor-buildpack-horse.

$ heroku buildpacks:set https://github.com/AdmitHub/meteor-buildpack-horse.git

5. Configurar las variables de nuestra aplicación

# Variable para la URL
$ heroku config:set ROOT_URL="https://<app-name>.herokuapp.com"
# Variable para enlazar a nuestra Base de datos (MongoDB URI)
$ heroku config:set MONGO_URL="<mlab-uri>"
# Settings de Meteor (suponiendo que están en settings.json)
$ heroku config:set METEOR_SETTINGS="$(cat settings.json)"

6. Desplegar

Una vez tenemos todo configurado lo último que tenemos que hacer es un git push a la rama master de nuestro repositorio remoto en Heroku.

$ git push <remote-name> master

Bonus

Para terminar os dejo algunas anotaciones que os pueden ser de utilidad…

* Trabajar en equipo

Para que el resto del equipo de desarrollo pueda desplegar sus cambios tan solo tienen que añadir el repositorio remoto a su proyecto git usando:

$ heroku git:remote -a <app-name> -r <remote-name>

* Mostrar el log

Si queremos ver el log de nuestra aplicación tan solo tenemos que ejecutar:

$ heroku logs

* Integrar add-ons

Podemos agregar herramientas y servicios desde la terminal con el siguiente comando:

$ heroku addons:create <proveedor:plan>

* Desplegar una rama distinta de master

Lo haremos de la misma manera que haríamos con git:

$ git push <remote-name> <local-branch>:master

* Trabajar con varias instancias de Heroku

Si tenemos varios repositorios remotos de Heroku en un mismo proyecto para ejecutar algunos comandos tendremos que especificar la aplicación, por ejemplo:

$ heroku config:add METEOR_SETTINGS="$(cat settings-development.json)" --app <dev-app-name>$ heroku config:add METEOR_SETTINGS="$(cat settings-production.json)" --app <prod-app-name>

--

--