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. Requisitos previos
Section titled 1. Requisitos previos- Instala docker:
sudo apt update
sudo apt install docker.io -y
user=`whoami`
sudo chown $user /var/run/docker.sock
- 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-
Inicia sesión en tu registro de contenedores usando
docker login <registry_url>. Si tienes una cuenta de docker hub, simplemente ejecutadocker login. -
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
3. Actualizar las imágenes
Section titled 3. Actualizar las imágenes- 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
- Para usar los componentes que acabas de compilar y enviar a tu registro de contenedores, actualiza el archivo
vars.yaml, ubicado dentro de la carpetaopenreplay/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 APIimagePullSecrets: 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
Instalar OpenReplay
Section titled Instalar OpenReplay- Abre
vars.yamly luego edita:
domainName: aquí es donde OpenReplay estará accesible (es decir, openreplay.mycompany.com)
- 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.
Configurar TLS/SSL
Section titled Configurar TLS/SSLOpenReplay 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.
-
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. -
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.shy sigue los pasos.
- Si deseas habilitar la redirección de http a https (recomendado), descomenta el siguiente bloque, bajo la sección
ingress-nginx, envars.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
- Por último, reinstala el NGINX de OpenReplay:
openreplay -R
4. Compilar y desplegar el Frontend
Section titled 4. Compilar y desplegar el FrontendFinalmente, 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).
¿Tienes preguntas?
Section titled ¿Tienes preguntas?Si encuentras algún problema, conéctate a nuestro Slack o consulta nuestro Foro y obtén ayuda de nuestra comunidad.