Instalación de Mercure.rocks con DockerManager -- Core-Admin -- Docker


#1

1. Introducción

El siguiente artículo te explica cómo instalar mercure (https://mercure.rocks/).

2. Qué es Mercure

Mercure es un protocolo abierto para comunicaciones en tiempo real, diseñado para ser rápido, eficiente y respetuoso con el en consumo de batería. Es un reemplazo conveniente para APIs Websockets o servicios y librerías soportadas sobre este protocolo.

Mercure es especialmente útil para añadir capacidades de API GraphQL y REST (tanto para comunicaciones asíncronicas como de tipo streaming). Debido a que es una capa ligera sobre HTTP y SSE, Mercure está soportado de manera nativa por navegadores modernos, aplicaciones móbiles y dispositivos IoT.

3. Requisitos

El siguiente procedimiento usa #DockerManager de #CoreAdmin (https://core-admin.com) para su instalación. Una vez instalada la imagen #Docker, se configuran distintos parámetros, junto con el mapeo HTTPS para que el servicio esté disponible con un certificado.

Requisitos para completar el procedimiento:

  1. Es necesario ser administrador o administrador de plataforma sobre la máquina donde se hará la configuración.
  2. Tienes que definir un nombre de servicio FQDN donde estará localizado tu mercure. Algo como mercure.domain.com (mercure-001.domain.com, etc).
  3. El nombre elegido tiene que apuntar la IP del servidor que será configurado (para que el Let’s Encrypt complete).
  4. El procedimiento instalará #Docker en el servidor (o reusará la instalación ya existente).

4. Instalando #DockerManager para #CoreAdmin

Este paso se puede ignorar si ya tienes la aplicación instalada. Compruébalo en la vista de máquina:

Si no está presente, instala la aplicación siguiendo los siguientes pasos:

  1. Como Administrador de plataforma o de máquina, selecciona la aplicación #DockerManager, márcala como configurada y dale a “Editar”:

  2. …pincha en “Mostrar configuración máquina”:

    image

  3. …ahora en la aplicación “Gestor Docker”:

  4. …esto mostrará el instalador. Pulsa a instalar la aplicación para que también despliegue el resto de componentes:

    image

  5. Esto lanzará un proceso de instalación que debería terminar con:

    image

  6. Cierra las ventanas y arranca la aplicación en la vista de máquina. Recarga si es necesario:

5. Descargar imagen mercure/dunglas (Docker para CoreAdmin)

La imagen docker oficinal proporcionada por Mercure.Rocks (https://mercure.rocks/docs/hub/install) es: dunglas/mercure.

  1. Descarga la imagen, si todavía no la tienes, para que esté disponible para tus contenedores docker:

  2. Introducimos el nombre de la imagen. Como estamos interesados en usar “latest” no añadimos nada. Si queremos cierta versión, sería meter: dunglas/mercure:version:

  3. Al terminar, debería quedar la imagen disponible en el listado:

6. Arrancando containers mercure (mecánica de funcionamiento)

La idea detrás de los siguientes pasos es proporcionar un mercure, uno por cada URL que se vaya a soportar:

  1. Un contenedor por cada instancia
  2. Cada contenedor mapeado a una URL
  3. Cada contenedor configurado con una configuración independiene donde se ajuste el soporte anónimo (ALLOW_ANONYMOUS), la configuración CORS (CORS_ALLOWED_ORIGINS)
    y PUBLISHED_ALLOWED_ORIGINS (entre otros). Revisa la documentación por si necesitas otras varibles.
  4. Antes de comenzar: define bien el nombre URL que usarás para acceder a este mercure.

Aquí tienes los pasos generales para arrancar un Mercure:

  1. Añadimos un nuevo contenedor con la imagen del mercure:

  2. Pincha en “Pendiente” para terminar de configurar el contenedor con las variables que necesita tu mercure:

  3. Ahora, dentro de las “Variables de entorno”, añade las variables necesarias para configurar este Mercure. Nosotros configuraremos las siguientes, que son las mínimas para tener un sistema en producción:

    • JWT_KEY : clave de acceso para tu Mercure (para usarlo desde tu código)
    • CORS_ALLOWED_ORIGINS : orígenes CORS aceptados
    • PUBLISH_ALLOWED_ORIGINS : url desde donde daremos servicio

    A continuación, se muestra ejemplo de configuración:

    …luego configuramos el conjunto de variables:

    JWT_KEY: define y apunta la clave

    CORS_ALLOWED_ORIGINS: configura el cors

    PUBLISH_ALLOWED_ORIGINS: configura aquí la URL que usarás para dar servicio

  4. Ahora, mapeamos el servicio que proporciona mercure (en el 80 interno), a un puerto dentro de la máquina. Uno que no esté disponible: por ejemplo el 24501:

    image

    …hacemos el mapeo:

    image

  5. Ahora, tenemos que hacer que esta imagen docker de Mercure, esté disponible con un certificado y en un puerto estándar. Esto se hace con un mapeo web:

    image

    …activamos el soporte de SSL:

    image

  6. Con todo configurado, sólo falta lanzar la aplicación:

  7. Si todo funciona correctamente, deberías ver la aplicación disponible en la sección “Ejecutando”: