Aller au contenu

Captures d’écran des concurrents (en local uniquement)

Captures d’écran des concurrents (en local uniquement)

Les captures des pages sitemap des concurrents ne peuvent être faites à jour qu’en local (sur votre Mac ou poste de travail). Le serveur n’exécute pas Node/Playwright ; les boutons « Capturer » sur le site lancent des jobs qui peuvent échouer en production. Pour avoir des captures à jour, utilisez le script local ci-dessous.

Pourquoi en local seulement ?

  • Sur l’hébergement, Node.js et Playwright (navigateur) ne sont en général pas disponibles.
  • Le script tourne sur votre Mac, prend les captures avec Playwright, puis envoie les images au site via une API protégée par token.

Côté serveur (déjà en place)

  1. Dans le .env du serveur, un token secret doit être défini :

    SCREENSHOT_UPLOAD_TOKEN=votre_token_secret_long_et_aleatoire
    
  2. Les routes d’upload sont protégées par ce token (sans session utilisateur).

Côté local (votre Mac)

  1. Dans le projet (fichier .env à la racine de berioxhub), définir :

    SITE_URL=https://votresite.com
    SCREENSHOT_UPLOAD_TOKEN=le_meme_token_que_sur_le_serveur
    
  2. Lancer le script depuis la racine du projet Laravel (berioxhub) :

    cd berioxhub
    node scripts/upload-competitor-screenshots.js
    
  3. Pour rafraîchir toutes les captures (y compris celles qui en ont déjà une), par exemple chaque jour :

    refresh=1 node scripts/upload-competitor-screenshots.js
    
  4. Optionnel : limiter le nombre de métriques (défaut 50) :

    LIMIT=20 node scripts/upload-competitor-screenshots.js
    

Cron quotidienne sur Mac

Pour lancer le script chaque jour (ex. à 6 h) :

  1. Ouvrir la crontab :

    crontab -e
    
  2. Ajouter une ligne (adapter le chemin et le cd) :

    0 6 * * * cd /chemin/vers/beriox-hub-vf/berioxhub && SITE_URL=https://votresite.com SCREENSHOT_UPLOAD_TOKEN=xxx refresh=1 node scripts/upload-competitor-screenshots.js >> /tmp/screenshots-cron.log 2>&1
    

    Si les variables sont dans un fichier .env dans berioxhub :

    0 6 * * * cd /chemin/vers/beriox-hub-vf/berioxhub && refresh=1 node scripts/upload-competitor-screenshots.js >> /tmp/screenshots-cron.log 2>&1
    
  3. Si besoin, utiliser le chemin complet de node (cron a souvent un PATH restreint) :

    which node
    

    Puis dans la cron, par exemple :

    0 6 * * * cd /chemin/vers/beriox-hub-vf/berioxhub && /usr/local/bin/node scripts/upload-competitor-screenshots.js ...
    

Résumé

  • Action possible uniquement en local : les captures à jour se font sur votre Mac avec le script Node.
  • Serveur : configurer SCREENSHOT_UPLOAD_TOKEN dans .env.
  • Mac : même token + SITE_URL dans .env ou en variables d’environnement.
  • Quotidien : cron avec refresh=1 pour mettre à jour les captures chaque jour.