← Ouvrir l’application

Installation sur Cloudflare Pages

Ce paquet est conçu pour l’envoi direct du ZIP dans votre projet Pages existant. L’interface peut s’afficher avant de configurer les données. Aucune collecte automatique ne fonctionne tant que les étapes 2 à 4 ne sont pas terminées.

Nouvelle version · Inspection

Si votre base et la liaison DB sont déjà configurées, redéployez simplement PREPATEC-EXPLORER-INSPECTION.zip dans le même projet Pages en production. Aucune nouvelle table n’est nécessaire. Le planificateur existant reste utilisable.

La rubrique Identifier / inspecter fonctionne sans base D1 : elle interroge directement les sources publiques à la demande via le serveur. Les actualités et leur historique restent dépendants de D1. Le logo et l’icône iPhone sont conservés.

Raccordement d’un fournisseur d’immatriculation

Le serveur prévoit un adaptateur POST JSON : configurez PLATE_API_URL (URL HTTPS finale) et PLATE_API_KEY (secret fournisseur) dans les variables du projet Pages, puis redéployez. L’adaptateur envoie {plate,country} avec Authorization: Bearer et attend {vehicle:{brand,model,vin,...}}. Une API ayant un autre protocole nécessite de modifier l’adaptateur du fichier _worker.js. ADMIN_TOKEN reste requis pour lancer une recherche par plaque depuis l’interface. Ne configurez que votre fournisseur contractuel autorisé ; sa clé n’est jamais transmise au navigateur.

1. Afficher l’application

  1. Ouvrez le projet prepatecexplorer dans Workers & Pages. Si les boutons ne répondent pas sur iPhone, activez la version pour ordinateur dans Safari.
  2. Choisissez Créer un déploiement / Create deployment, puis le téléversement des fichiers. Choisissez la production.
  3. Envoyez PREPATEC-EXPLORER-INSPECTION.zip tel quel. Dans la liste, vérifiez que index.html, app.js, style.css, logo.png et _worker.js sont à la racine, sans dossier englobant.
  4. Déployez et attendez le statut de réussite. Ouvrez le lien du déploiement puis votre adresse principale. Aucun terminal ni build n’est requis pour ce paquet.

Icône sur iPhone

Après avoir déployé ce ZIP, ouvrez le site dans Safari, puis utilisez Partager → Sur l’écran d’accueil → Ajouter. Si une ancienne icône reste sur l’écran d’accueil, retirez uniquement cet ancien raccourci et ajoutez le site à nouveau. Les bases D1 et leurs données ne sont pas supprimées par ce remplacement du ZIP. Vérifiez l’aperçu de l’icône avant de valider l’ajout.

2. Enregistrer les données

Dans Cloudflare, ouvrez le service D1 (stockage et bases de données). Créez une base appelée prepatec-explorer, ou réutilisez celle de la première installation si elle existe.

Dans la console SQL de cette base, exécutez le schéma ci-dessous. Les commandes CREATE IF NOT EXISTS ne suppriment pas les données existantes.

Dans les paramètres de votre projet Pages → Bindings / Liaisons → Ajouter → D1, indiquez le nom de variable DB et sélectionnez cette base, pour la production. Redéployez le même ZIP après avoir enregistré la liaison.

3. Première collecte manuelle

Dans les variables et secrets du projet Pages, créez un secret appelé ADMIN_TOKEN avec une valeur aléatoire privée d’au moins 24 caractères. Conservez cette valeur dans votre gestionnaire de mots de passe. Redéployez le même ZIP.

Dans l’application : Sources & suivi → Vérifier les sources maintenant. Saisissez cette clé. Vérifiez qu’une date de réussite et des annonces apparaissent. Une erreur de source est affichée explicitement.

4. Activer les mises à jour même lorsque l’application est fermée

Pages n’exécute pas directement le calendrier de collecte. Créez un Worker distinct, par exemple prepatec-explorer-suivi. Dans son éditeur, remplacez le code par :

Dans les secrets de ce Worker, ajoutez ADMIN_TOKEN avec exactement la même clé que celle du projet Pages. Ajoutez la variable texte APP_URL contenant votre adresse de production, par exemple https://prepatecexplorer.pages.dev. Déployez le Worker.

Dans ses paramètres de déclenchement, ajoutez un Cron Trigger : */30 * * * *. La collecte aura lieu aux minutes 00 et 30 de chaque heure. L’activation peut prendre quelques minutes. Vérifiez ensuite les logs du Worker et la date de dernière réussite dans Sources & suivi.

Données disponibles et limites

Un flux d’actualités BMW Group et les 50 dernières fiches RappelConso de la catégorie automobiles et moyens de déplacement sont configurés pour la veille. Il doit encore être vérifié depuis votre compte Cloudflare. Il ne fournit pas les fiches techniques de toutes les marques. Le catalogue reste vide tant qu’aucune source de fiches n’a été raccordée. La collecte n’invente ni prix ni caractéristiques.

Les ajouts et modifications sont conservés en D1. L’interface affiche les 200 derniers changements et jusqu’à 1 000 annonces/fiches. La détection se fait toutes les 30 minutes après configuration, sans garantie d’instantanéité. Aucun email ou SMS n’est envoyé. Les favoris sont locaux à votre appareil. Le site est public par défaut ; configurez Cloudflare Access si vous avez besoin d’un accès privé.

Le ZIP contient le backend autonome _worker.js : sa première ligne définit les sources. Pour ajouter une source, modifiez cette liste avec une URL officielle autorisée et redéployez. Types acceptés : rss pour actualités RSS/Atom, vehicles-json pour fiches conformes au format décrit ci-dessous.

[{"id":"version-marche-millesime","brand":"Marque","model":"Modèle","url":"https://domaine-officiel/fiche","energy":"Énergie","power":"Puissance avec unité","range":"Autonomie et cycle","price":"Prix avec devise","market":"FR","modelYear":"Millésime"}]

Le flux vehicles-json doit renvoyer ce tableau (ou {"vehicles":[...]}). Une API privée nécessite un adaptateur côté serveur et ses secrets. Ne saisissez jamais de secrets dans le JavaScript public.

Si une page blanche persiste

Ouvrez /installation.html sur le lien du nouveau déploiement. Si cette page est également absente, vérifiez le statut du déploiement et la présence d’index.html à la racine. Si le guide s’affiche mais pas l’application, essayez le lien propre au nouveau déploiement et envoyez une capture. La cause exacte de la page blanche initiale n’a pas pu être confirmée à distance.

Paquet vérifié localement : structure, syntaxe et routage API/fichiers. Déploiement réel et rendu dans Safari restent à vérifier sur votre compte.

Documentation officielle : Envoi direct · Mode avancé · Cron Triggers