InfraGuard

Page d'accueil publique, demandes de démo et balises analytiques

Les surfaces accessibles sans connexion (page d'accueil, formulaire de démo, manuel utilisateur), les balises GA4/GTM qui mesurent leurs visiteurs, et l'écran d'administration qui traite les demandes de démo reçues.

Vue d’ensemble — ce que couvre cette page

Outre la console située derrière l’authentification, InfraGuard dispose d’une surface publique.

Chemin Écran Accès
/ page d’accueil marketing invités (une session authentifiée est redirigée vers /console)
/demo formulaire de demande de démo invités
/manual manuel utilisateur invités et utilisateurs connectés indifféremment
/login · /lang/{locale} connexion · changement de langue invités

L’accueil de la console se trouve à /console. Ce déplacement a cédé / à la surface publique sans casser le nom de route (overview) ni les favoris existants.

La page d’accueil est compilée dans un bundle distinct (front.*). La placer dans le bundle de la console obligerait chaque visiteur à télécharger Vue, ECharts, CodeMirror, Konva et xterm (mesuré : environ 1,283KB pour la console contre 24KB pour le front). Pour une page marketing, la première impression est la vitesse de chargement. Seule l’interface partagée minimale (boutons d’icône, sélecteur de langue) réside dans _shared-ui afin que les deux côtés utilisent la même définition — la copier-coller laisserait un côté diverger.

Le manuel public

/manual s’ouvre sans connexion. Une personne qui évalue le produit doit pouvoir lire comment il est réellement exploité, et une documentation publique constitue en soi un actif marketing et SEO. Les documents ne contiennent aucun secret ni aucune donnée en direct.

Demandes de démo

Le formulaire public (/demo)

Il s’agit d’une prise de demande, pas d’une démo en un clic. Seuls un nom et un e-mail professionnel sont obligatoires ; la langue, la source de provenance et l’IP sont enregistrées à côté.

Ce formulaire est le seul chemin d’écriture ouvert aux invités dans l’application, il est donc défendu de quatre manières.

  1. Pot de miel — s’il est rempli, rien n’est enregistré mais la réponse ressemble toujours à un succès (n’annoncez jamais la détection).
  2. throttle:8,1 — la neuvième requête dans la minute reçoit un 429.
  3. Jeton CSRF.
  4. Validation serveur avec liste blanche — status et note sont réservés à l’administration, le formulaire public ne peut donc pas les définir.

L’écran d’administration (Administration ▸ Demandes de démo)

/admin/demo-requests fait tourner la boîte de réception : CRUD en modale, plus recherche, filtres de statut avec compteurs et pagination.

Statut Signification
new reçue, non traitée
contacted contact pris
qualified opportunité qualifiée
closed terminée

La recherche échappe les jokers de LIKE (%, _, \). Sans cela, taper un seul % correspondrait à toutes les lignes.

Balises analytiques (GA4 · GTM · Search Console)

Placez un identifiant de mesure dans .env et la balise apparaît uniquement sur la surface publique. Lorsque la valeur est vide, aucun <script> n’est rendu, de sorte qu’un déploiement par défaut n’émet aucune requête sortante.

Clé Valeur Rôle
GA_MEASUREMENT_ID G-XXXXXXXXXX gtag.js (GA4)
GTM_CONTAINER_ID GTM-XXXXXXX Google Tag Manager (peut coexister)
GOOGLE_SITE_VERIFICATION jeton meta validation de propriété Search Console
GA_PRODUCTION_ONLY true (par défaut) ne se déclenche qu’en production

Ne les ajoutez jamais à la console (layouts/app). Les URL et les titres de la console transportent des noms d’hôte, des IP, des alias d’instance et des titres d’incident. Envoyer cela à une propriété analytique tierce contredit la promesse d’auto-hébergement et de souveraineté des données que la page d’accueil elle-même affiche, et divulgue des détails de l’infrastructure du client.

GA4 ne vous donne pas les mots-clés de recherche. Il rapporte le canal (recherche organique) et s’arrête là ; les requêtes ne se trouvent que dans Search Console. C’est pourquoi la balise meta de propriété est émise indépendamment de GA4 — vous pouvez valider la propriété sans activer GA4 du tout. Pour les rapports par site, voyez Analyse des visiteurs et des recherches.

Politique rédactionnelle

Les chiffres de confiance de la page d’accueil n’utilisent que ce qui peut être compté dans le code, et ils sont comptés au moment du rendu plutôt qu’écrits en dur (nombre de jeux de règles, nombre de contrôles, nombre d’adaptateurs e-mail/SMS, etc.).

Cette politique a mis au jour une erreur réelle — le nombre de contrôles était de 36, pas de 37. À l’inverse, les valeurs observées ne sont jamais utilisées : le nombre de signatures distinctes s’élève à 43 sur 24h, 67 sur 7d et 79 au total, elles changeraient donc d’une visite à l’autre et saperaient la confiance au lieu de la construire. S’agissant d’une page publique, elle ne touche jamais non plus la base de données — une requête par visite est inutile, et la surface marketing doit survivre à une base de données instable.

Sources de données

Cible Emplacement Rôle
infr_demo_request par défaut (000770) boîte de réception des demandes de démo (status, note, locale, source, ip)
config/analytics.php ← .env config source de vérité des identifiants de mesure et de leur activation (App\Support\Analytics)
public/brand/ fichiers statiques logo et images OG

public/brand/ doit être commité. L’essentiel de public/ est une sortie générée (build, hot, storage sont dans le gitignore), il est donc facile de l’oublier, mais les ressources de marque ne sont pas une sortie de Vite — rien ne les construit, et sans le commit le logo et l’image OG renvoient 404 en production. L’image OG doit être en PNG : de nombreux robots des réseaux sociaux ne rendent pas un aperçu SVG.

Autorisations

Dépannage · FAQ

Voir aussi

공개 랜딩 페이지
공개 랜딩 페이지