Déployer sur Digital Ocean

Guide étape par étape pour déployer OpenReplay sur Digital Ocean.

Déployer sur Digital Ocean

La stack OpenReplay peut être installée sur une seule machine (droplet) et Digital Ocean est un candidat idéal. Voici comment procéder.

  1. Créez un nouveau projet (si ce n’est pas déjà fait), puis accédez-y et cliquez sur ‘Create’ droplet
  2. Choisissez l’image Ubuntu Server 20.04 LTS
  3. Optez pour ‘Shared CPU’ et choisissez le plan Regular Intel | 4 CPUs | 8GB. Ce sont les spécifications minimales, faute de quoi les services backend d’OpenReplay ne démarreront tout simplement pas. Elles suffisent pour un volume modéré, mais si vous attendez un trafic élevé, vous devriez augmenter la capacité à partir de là.
  4. Cliquez sur ‘New SSH key’ dans ‘Authentication’ et suivez les instructions pour générer une clé
  5. Donnez un nom à votre machine puis cliquez sur ‘Create droplet’
  1. Assurez-vous que votre droplet est active puis connectez-vous-y :
## From your terminal
SSH_KEY=~/Downloads/openreplay-key.pem ## wherever you've saved the SSH key
INSTANCE_IP=REPLACE_WITH_DROPLET_PUBLIC_IP
chmod 400 $SSH_KEY
ssh -i $SSH_KEY root@$INSTANCE_IP
  1. Installez OpenReplay en fournissant le domaine sur lequel il s’exécutera (par ex. DOMAIN_NAME=openreplay.mycompany.com) :
sudo wget https://raw.githubusercontent.com/openreplay/openreplay/main/scripts/helmcharts/openreplay-cli -O /bin/openreplay 
sudo chmod +x /bin/openreplay
openreplay -i DOMAIN_NAME

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 à enregistrer. Il en va de même pour le tableau de bord : sans HTTPS, vous ne pourrez pas rejouer les sessions des utilisateurs.

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

  1. D’abord, allez dans ‘Manage’ > ‘Networking’ > ‘Domains’ (ou votre autre 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 le droplet en utilisant son IP publique (que vous trouverez dans l’onglet Droplets).

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

Remarque : 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. Connectez-vous simplement au droplet OpenReplay, exécutez cd /var/lib/openreplay/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 /var/lib/openreplay/vars.yaml :
ingress-nginx: &ingress-nginx
  controller:
    config:
      ssl-redirect: true
      force-ssl-redirect: true

Il convient de mentionner que notre ingress-nginx s’exécute 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

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

Remarque : Vous pouvez également exécuter OpenReplay derrière un répartiteur de charge existant. Si c’est le cas, configurez alors votre SSL au niveau du LB :

  • Dans Forwarding rules (Load Balancer) : Sélectionnez HTTPS (443) dans la section Load Balancer puis cliquez sur ‘Certificate’ > ‘Add a new certificate’. Si votre domaine est géré par Digital Ocean, vous pouvez alors suivre les instructions de l’option Let’s Encrypt. Sinon, vous devez importer votre propre certificat.
  • Dans Forwarding rules (Droplet) : Sélectionnez HTTP (80) dans la section Droplet.

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