Desplegar desde el código fuente

Guía paso a paso para desplegar OpenReplay desde el código fuente.

Desplegar desde el código fuente

OpenReplay puede desplegarse desde el código fuente. Sus componentes principales (Backend, API y Frontend) deben compilarse y enviarse a tu propio registro de contenedores antes de realizar la instalación.

Las especificaciones mínimas para la máquina que ejecuta OpenReplay son 2 vCPUs, 8 GB of RAM, 50 GB of storage, de lo contrario los servicios del backend de OpenReplay simplemente no se iniciarán. Esto debería ser suficiente para un volumen bajo/moderado. Si esperas un tráfico alto, deberías escalar a partir de aquí.

  1. Instala docker:
sudo apt update
sudo apt install docker.io -y
user=`whoami`
sudo chown $user /var/run/docker.sock
  1. Clona el repositorio de OpenReplay:
git clone https://github.com/openreplay/openreplay

2. Compilar los servicios del Backend

Section titled 2. Compilar los servicios del Backend
  1. Inicia sesión en tu registro de contenedores usando docker login <registry_url>. Si tienes una cuenta de docker hub, simplemente ejecuta docker login.

  2. Compila los componentes del backend y luego envíalos a tu registro de contenedores:

cd openreplay/backend
sudo IMAGE_TAG=<my_tag_number> PUSH_IMAGE=1 DOCKER_REPO=index.docker.io/<username> bash build.sh 

Ten en cuenta que el nombre de la etiqueta puede ser cualquier cadena que desees, se creará en tu registro de Docker y se usará para identificar esta versión particular del código (útil si también estás modificando el código).

Si todo va bien, deberías tener, en tu registro de Docker, una lista de imágenes compiladas a partir del código fuente que tenías, listas para ser instaladas. La lista de imágenes es:

  • Storage
  • Sink
  • Integrations
  • HTTP
  • Heuristics
  • Ender
  • DB
  • Assets
  • Alerts
  • Chalice
  1. Crea el secreto de tu registro de contenedores:
kubectl create secret -n app docker-registry my-registry-secret \
        --docker-server=MY_CONTAINER_REGISTRY_URL \ # not required if docker hub
        --docker-username=MY_CONTAINER_REGISTRY_USERNAME \
        --docker-password=MY_CONTAINER_REGISTRY_PASSWORD \
        --docker-email=no@email.local 
  1. Para usar los componentes que acabas de compilar y enviar a tu registro de contenedores, actualiza el archivo vars.yaml, ubicado dentro de la carpeta openreplay/scripts/helmcharts. Simplemente agrega una sección para cada imagen que tengas en tu registro de docker con la siguiente información:
  • repository: debe apuntar a MY_CONTAINER_REGISTRY_URL/COMPONENT_NAME (si estás usando Docker Hub, usa en su lugar el formato <username>/<component name>)
  • pullPolicy: establece en “Always”
  • tag: el valor de IMAGE_TAG usado al compilar el Backend y la API
  • imagePullSecrets: el secreto del registro de contenedores

Ten en cuenta que cualquier imagen que no referencies dentro del archivo vars.yaml se desplegará e instalará desde el repositorio oficial de OpenReplay, lo que significa que no tendrás la versión compilada a partir de tu código fuente.

A continuación se muestra un ejemplo para el servicio alerts:

alerts:
  image:
    repository: rg.fr-par.scw.cloud/foss/alerts
    pullPolicy: Always
    tag: "v1.4.2"
  imagePullSecrets: 
    - name: my-registry-secret
  1. Abre vars.yaml y luego edita:
  • domainName: aquí es donde OpenReplay estará accesible (es decir, openreplay.mycompany.com)
  1. Instala OpenReplay:
cd openreplay/scripts/helmcharts
helm upgrade --install databases ./databases -n db --create-namespace --wait -f ./vars.yaml --atomic
helm upgrade --install openreplay ./openreplay -n app --create-namespace --wait -f ./vars.yaml --atomic

Si alguna vez modificas el código fuente de los servicios del backend o del servicio DB, tendrás que volver al paso 3 y luego ejecutar los comandos anteriores una vez más.

OpenReplay maneja datos sensibles de los usuarios y, por lo tanto, requiere HTTPS para ejecutarse. Esto es obligatorio, de lo contrario el tracker simplemente no comenzaría a grabar. Lo mismo ocurre con el dashboard: sin HTTPS no podrás reproducir las sesiones de los usuarios.

Por lo tanto, debes aportar (o generar) tu propio certificado SSL.

  1. Primero, ve a tu proveedor de servicio DNS y crea un A Record. Usa el dominio que proporcionaste previamente durante el paso de instalación y apúntalo a tu máquina usando su IP pública.

  2. Si vas a aportar tu propio certificado, crea el secreto SSL de Kubernetes usando el siguiente comando: kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Nota: Si no tienes un certificado, genera uno que se renueve automáticamente para tu subdominio (el que proporcionaste durante la instalación) usando Let’s Encrypt. Ejecuta cd openreplay/scripts/helmcharts && bash certmanager.sh y sigue los pasos.

  1. Si deseas habilitar la redirección de http a https (recomendado), descomenta el siguiente bloque, bajo la sección ingress-nginx, en vars.yaml:
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Vale la pena mencionar que nuestro ingress-nginx se ejecuta por defecto en los puertos 80|443, pero esto puede cambiarse fácilmente, si es necesario, en vars.yaml:

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Por último, reinstala el NGINX de OpenReplay:
 openreplay -R

4. Compilar y desplegar el Frontend

Section titled 4. Compilar y desplegar el Frontend

Finalmente, si también deseas compilar el frontend, tendrás que compilar la imagen con la siguiente línea:

cd openreplay/frontend
IMAGE_TAG=<your tag> PUSH_IMAGE=1 DOCKER_REPO=myDockerHubID bash build.sh

Una vez hecho esto, vuelve al archivo vars.yaml y agrega una sección específica para el frontend; debería verse similar a las que agregaste antes para alerts y chalice:

frontend:
  image:
    repository: <YOUR DOCKER REGISTRY>/frontend
    pullPolicy: Always
    tag: <YOUR TAG>
  imagePullSecrets: 
    - name: <YOUR SECRET>

Con la nueva sección agregada en el archivo, ejecuta el comando openreplay -R (que se encuentra dentro de la carpeta scripts/helmcharts) y tu nuevo frontend debería estar funcionando.

Ya está todo listo, OpenReplay debería estar accesible en tu subdominio. Puedes crear una cuenta visitando la página /signup (es decir, openreplay.mycompany.com/signup).

Si encuentras algún problema, conéctate a nuestro Slack o consulta nuestro Foro y obtén ayuda de nuestra comunidad.