DEV Community

Cover image for Desplegando apps en Meteor con Heroku y mLab
Mario Blas 🇮🇨 for Capua

Posted on • Originally published at Medium

Desplegando apps en Meteor con Heroku y mLab

Este post fue publicado originalmente en noviembre de 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>
Enter fullscreen mode Exit fullscreen mode

2. Autenticarse con Heroku CLI

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

$ heroku login
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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)"
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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>
Enter fullscreen mode Exit fullscreen mode

*Mostrar el log

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

$ heroku logs
Enter fullscreen mode Exit fullscreen mode

*Integrar add-ons

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

$ heroku addons:create <proveedor:plan>
Enter fullscreen mode Exit fullscreen mode

*Desplegar una rama distinta de master

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

$ git push <remote-name> <local-branch>:master
Enter fullscreen mode Exit fullscreen mode

*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:

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

# Production
$ heroku config:add METEOR_SETTINGS="$(cat settings-production.json)" --app <prod-app-name>
Enter fullscreen mode Exit fullscreen mode

Top comments (0)