Déployer depuis les sources

Guide étape par étape pour déployer OpenReplay depuis le code source.

Déployer depuis les sources

OpenReplay peut être déployé depuis les sources. Ses principaux composants (Backend, API et Frontend) doivent être compilés et poussés vers votre propre registre de conteneurs avant de procéder à l’installation.

Les spécifications minimales pour la machine exécutant OpenReplay sont 2 vCPUs, 8 GB of RAM, 50 GB of storage, sinon les services backend d’OpenReplay ne démarreront tout simplement pas. Cela devrait suffire pour un volume faible/modéré. Si vous prévoyez un trafic élevé, vous devriez monter en charge à partir de là.

  1. Installez docker :
sudo apt update
sudo apt install docker.io -y
user=`whoami`
sudo chown $user /var/run/docker.sock
  1. Clonez le dépôt OpenReplay :
git clone https://github.com/openreplay/openreplay

2. Compiler les services Backend

Section titled 2. Compiler les services Backend
  1. Connectez-vous à votre registre de conteneurs à l’aide de docker login <registry_url>. Si vous avez un compte docker hub, exécutez simplement docker login.

  2. Compilez les composants backend puis poussez-les vers votre registre de conteneurs :

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

Notez que le nom du tag peut être n’importe quelle chaîne de votre choix, il sera créé sur votre registre Docker et servira à identifier cette version particulière du code (utile si vous modifiez également le code).

Si tout se passe bien, vous devriez avoir, dans votre registre Docker, une liste d’images compilées à partir du code source dont vous disposiez, prêtes à être installées. La liste des images est la suivante :

  • Storage
  • Sink
  • Integrations
  • HTTP
  • Heuristics
  • Ender
  • DB
  • Assets
  • Alerts
  • Chalice
  1. Créez le secret de votre registre de conteneurs :
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. Pour utiliser les composants que vous venez de compiler et de pousser vers votre registre de conteneurs, mettez à jour le fichier vars.yaml, situé dans le dossier openreplay/scripts/helmcharts. Ajoutez simplement une section pour chaque image présente dans votre registre docker avec les informations suivantes :
  • repository : doit pointer vers MY_CONTAINER_REGISTRY_URL/COMPONENT_NAME (si vous utilisez Docker Hub, utilisez plutôt le format <username>/<component name>)
  • pullPolicy : réglé sur “Always”
  • tag : la valeur de IMAGE_TAG utilisée lors de la compilation du Backend et de l’API
  • imagePullSecrets : le secret du registre de conteneurs

Notez que toute image que vous ne référencez pas dans le fichier vars.yaml sera déployée et installée à partir du dépôt officiel d’OpenReplay, ce qui signifie que vous n’aurez pas la version compilée à partir de votre code source.

Voici un exemple pour le service alerts :

alerts:
  image:
    repository: rg.fr-par.scw.cloud/foss/alerts
    pullPolicy: Always
    tag: "v1.4.2"
  imagePullSecrets: 
    - name: my-registry-secret
  1. Ouvrez vars.yaml puis modifiez :
  • domainName : c’est l’adresse où OpenReplay sera accessible (c.-à-d. openreplay.mycompany.com)
  1. Installez 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 vous modifiez un jour le code source des services backend ou du service DB, vous devrez revenir à l’étape 3 puis exécuter de nouveau les commandes ci-dessus.

OpenReplay traite des données utilisateur sensibles et nécessite donc HTTPS pour fonctionner. C’est obligatoire, sinon le tracker ne commencerait tout simplement pas l’enregistrement. Il en va de même pour le dashboard : sans HTTPS, vous ne pourrez pas rejouer les sessions des utilisateurs.

Vous devez donc fournir (ou générer) votre propre certificat SSL.

  1. Tout d’abord, rendez-vous chez votre fournisseur de service DNS et créez un A Record. Utilisez le domaine que vous avez fourni précédemment lors de l’étape d’installation et faites-le pointer vers votre machine en utilisant son IP publique.

  2. Si vous fournissez votre propre certificat, créez le secret SSL Kubernetes à l’aide de la commande suivante : kubectl create secret tls openreplay-ssl -n app --key="private_key_file.pem" --cert="certificate.crt".

Note : Si vous n’avez pas de certificat, générez-en un, qui se renouvelle automatiquement, pour votre sous-domaine (celui fourni lors de l’installation) à l’aide de Let’s Encrypt. Exécutez cd openreplay/scripts/helmcharts && bash certmanager.sh et suivez les étapes.

  1. Si vous souhaitez activer la redirection de http vers https (recommandé), décommentez le bloc ci-dessous, sous la section ingress-nginx, dans vars.yaml :
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Il convient de mentionner que notre ingress-nginx fonctionne par défaut sur les ports 80|443, mais cela peut être facilement modifié, si nécessaire, dans vars.yaml :

ingress-nginx: &ingress-nginx
  controller:
    service:
      ports:
        http: 80
        https: 443
  1. Enfin, réinstallez le NGINX d’OpenReplay :
 openreplay -R

4. Compiler et déployer le Frontend

Section titled 4. Compiler et déployer le Frontend

Enfin, si vous souhaitez également compiler le frontend, vous devrez construire l’image avec la ligne suivante :

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

Une fois cela fait, retournez dans le fichier vars.yaml et ajoutez une section spécifique au frontend ; elle devrait ressembler à celles que vous avez ajoutées précédemment pour alerts et chalice :

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

Une fois la nouvelle section ajoutée au fichier, exécutez la commande openreplay -R (qui se trouve dans le dossier scripts/helmcharts) et votre nouveau frontend devrait fonctionner.

Tout est prêt maintenant, OpenReplay devrait être accessible sur votre sous-domaine. Vous pouvez créer un compte en vous rendant sur la page /signup (c.-à-d. openreplay.mycompany.com/signup).

Si vous rencontrez des problèmes, rejoignez notre Slack ou consultez notre Forum et obtenez de l’aide de notre communauté.