DEV Community

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

Posted on • Originally published at Medium

3 1

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

Heroku

Simplify your DevOps and maximize your time.

Since 2007, Heroku has been the go-to platform for developers as it monitors uptime, performance, and infrastructure concerns, allowing you to focus on writing code.

Learn More

Top comments (0)

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay