mermio/audit

Package Laravel pour auditer des sites web via sitemap et Google PageSpeed Insights up

Maintainers

Package info

gitlab.com/GuillaumeOnix/laravel-audit

Issues

pkg:composer/mermio/audit

Statistics

Installs: 4

Dependents: 0

Suggesters: 0

Stars: 1

1.0.0 2025-12-13 18:10 UTC

This package is not auto-updated.

Last update: 2026-03-31 21:10:25 UTC


README

Package Laravel pour auditer des sites web via sitemap et Google PageSpeed Insights avec Filament V4.

Installation

Installation via Composer

Installez le package via Composer :

composer require mermio/audit

Publier les fichiers

Publier la configuration :

php artisan vendor:publish --tag=audit-config

Publier les migrations :

php artisan vendor:publish --tag=audit-migrations

Exécuter les migrations

php artisan migrate

Configurer la queue

Les audits sont traités en arrière-plan via des jobs Laravel. Assurez-vous d'avoir un worker de queue en cours d'exécution :

php artisan queue:work

Ou utilisez un supervisor pour gérer automatiquement les workers en production.

Configuration

Variables d'environnement

Ajoutez dans votre fichier .env :

# URL du sitemap à auditer
# Peut être une URL complète : https://example.com/sitemap.xml
# Ou un chemin relatif : sitemap.xml (sera combiné avec APP_URL)
AUDIT_SITEMAP_URL=sitemap.xml

# Clé API Google PageSpeed Insights
PAGESPEED_API_KEY=votre_cle_api_google

# Canal de log pour l'audit (optionnel, utilise 'stack' par défaut)
AUDIT_LOG_CHANNEL=stack

Note importante sur AUDIT_SITEMAP_URL :

  • Si vous fournissez une URL complète (ex: https://example.com/sitemap.xml), elle sera utilisée telle quelle
  • Si vous fournissez un chemin relatif (ex: sitemap.xml), il sera automatiquement combiné avec APP_URL
  • Cela permet d'auditer facilement un site différent de celui où tourne l'application

Vous pouvez également modifier la configuration dans config/audit.php après publication.

Configuration Filament

Vous devez enregistrer le plugin manuellement dans votre PanelProvider (par exemple app/Providers/Filament/AdminPanelProvider.php) :

use Filament\Panel;
use Mermio\Audit\Filament\AuditPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ... autres configurations
        ->plugin(AuditPlugin::make());
}

Personnaliser le groupe de navigation

Par défaut, les ressources d'audit apparaissent dans le groupe de navigation "Audit". Vous pouvez personnaliser ce groupe lors de l'enregistrement du plugin :

use Filament\Panel;
use Mermio\Audit\Filament\AuditPlugin;

public function panel(Panel $panel): Panel
{
    return $panel
        // ... autres configurations
        ->plugin(
            AuditPlugin::make()
                ->navigationGroup('Paramètres')
        );
}

Utilisation

Lancer un audit

  1. Accédez à l'interface Filament
  2. Allez dans le menu "Audit"
  3. Cliquez sur "Lancer un audit"
  4. Confirmez dans la modale (le nom et les sitemaps sont générés automatiquement)
  5. L'audit se lancera automatiquement en arrière-plan via des jobs

Consulter un rapport

  1. Cliquez sur un audit dans la liste
  2. Le rapport affiche :
    • Les informations générales de l'audit
    • La liste des pages analysées avec :
      • Le code réponse HTTP
      • Le score PageSpeed Insights
      • La date de vérification

Commande Artisan

Vous pouvez également lancer un audit via la ligne de commande :

php artisan audit:run {audit_id}

Fonctionnalités

  • ✅ Analyse automatique du sitemap (support des sitemaps index et multiples sitemaps)
  • ✅ Support des sitemaps multilingues (sitemap_index.xml avec sitemap_fr.xml.gz, sitemap_en.xml.gz, etc.)
  • ✅ Support des fichiers compressés (.gz)
  • ✅ Vérification du code réponse HTTP de chaque page
  • ✅ Intégration Google PageSpeed Insights API (Performance, Accessibilité, Bonnes pratiques, SEO)
  • ✅ Interface Filament V4 complète
  • ✅ Rapports détaillés avec scores de performance
  • ✅ Traitement asynchrone via jobs Laravel (non bloquant)
  • ✅ Parallélisation des analyses PageSpeed
  • ✅ Gestion des erreurs et logs

Configuration avancée

Sitemaps multilingues et compressés

Le package gère automatiquement :

  1. Sitemaps index : Si votre sitemap principal (ex: sitemap_index.xml) contient des références vers d'autres sitemaps, le package les détectera et les parsera automatiquement de manière récursive.

  2. Fichiers compressés : Les fichiers .gz (ex: sitemap_fr.xml.gz, sitemap_en.xml.gz) sont automatiquement décompressés avant le parsing.

Exemple de structure supportée :

sitemap_index.xml
├── sitemap_fr.xml.gz
├── sitemap_en.xml.gz
├── sitemap_de.xml.gz
└── sitemap_es.xml.gz

Il suffit de fournir l'URL du sitemap index lors de la création de l'audit, et toutes les URLs de tous les sous-sitemaps seront automatiquement extraites et analysées.

Stratégie PageSpeed

Par défaut, la stratégie est définie sur desktop. Vous pouvez la changer pour mobile dans config/audit.php :

'pagespeed' => [
    'api_key' => env('PAGESPEED_API_KEY'),
    'api_url' => 'https://www.googleapis.com/pagespeedonline/v5/runPagespeed',
    'strategy' => 'mobile', // ou 'desktop'
],

Sitemaps multiples

Vous pouvez configurer plusieurs sitemaps dans config/audit.php :

'sitemap_urls' => [
    'https://example.com/sitemap.xml',
    'https://example.com/sitemap-blog.xml',
],

Support

Pour toute question ou problème, veuillez ouvrir une issue sur le dépôt GitHub.

Licence

MIT