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)
-
Dans le
.envdu serveur, un token secret doit être défini :SCREENSHOT_UPLOAD_TOKEN=votre_token_secret_long_et_aleatoire -
Les routes d’upload sont protégées par ce token (sans session utilisateur).
Côté local (votre Mac)
-
Dans le projet (fichier
.envà la racine deberioxhub), définir :SITE_URL=https://votresite.com SCREENSHOT_UPLOAD_TOKEN=le_meme_token_que_sur_le_serveur -
Lancer le script depuis la racine du projet Laravel (
berioxhub) :cd berioxhub node scripts/upload-competitor-screenshots.js -
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 -
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) :
-
Ouvrir la crontab :
crontab -e -
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>&1Si les variables sont dans un fichier
.envdansberioxhub:0 6 * * * cd /chemin/vers/beriox-hub-vf/berioxhub && refresh=1 node scripts/upload-competitor-screenshots.js >> /tmp/screenshots-cron.log 2>&1 -
Si besoin, utiliser le chemin complet de
node(cron a souvent un PATH restreint) :which nodePuis 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_TOKENdans.env. - Mac : même token +
SITE_URLdans.envou en variables d’environnement. - Quotidien : cron avec
refresh=1pour mettre à jour les captures chaque jour.