Audit Technique de Drupal en 20 Minutes. Comment Utiliser l'Outil Druscan?
Changer l'agence qui soutient votre système Drupal ou obtenir des devis de plusieurs entreprises nécessite généralement de partager les détails techniques de votre projet. Le problème est que la base de données contient des données clients, la configuration stocke les clés API, et le code personnalisé révèle la logique commerciale de l'entreprise. Dans cet article, je vais vous montrer un outil open source qui résout ce problème. Druscan collecte toutes les informations techniques nécessaires à l'analyse, tout en protégeant les données sensibles. Je vous invite à lire l'article du blog ou à regarder un épisode de la série "Nowoczesny Drupal".
Dans cet article :
- Le défi : comment estimer les coûts d'un projet Drupal sans exposer de données sensibles ?
- Qu'est-ce que Druscan et comment ça marche ?
- Quelles données Druscan collecte-t-il lors d'un audit technique ?
- Quelles données Druscan n'inclut-il PAS dans son audit technique ?
- Quelles sont les exigences techniques et comment installer Druscan ?
- À quoi ressemble un rapport d'audit technique Druscan ?
- Démonstration : comment fonctionne un audit technique Druscan sur un vrai projet
- Quels sont les autres usages possibles de Druscan ?
- Audit technique de Drupal avec Druscan - résumé
Le défi : comment estimer les coûts d'un projet Drupal sans exposer de données sensibles ?
Supposons que vous gériez un système basé sur Drupal et que vous prévoyiez d'en confier la maintenance à une nouvelle entreprise. Vous pouvez également avoir besoin de devis de plusieurs agences pour mettre à niveau Drupal 8 vers la dernière version, ou vous préparez une modification majeure d'un projet que vous avez maintenu vous-même jusqu'à présent. Dans chacun de ces scénarios, il est nécessaire de fournir des informations techniques de base.
Cependant, après avoir envoyé les demandes de propositions, une série de questions détaillées surgissent rapidement : combien de modules sont installés ? Le projet comprend-il des modules personnalisés ? À quoi ressemble l'architecture des données ? Combien de contenu le système stocke-t-il ? Pour répondre à ces questions avec précision, les entreprises ont généralement besoin d'accéder à la base de données, au référentiel de code, voire même au serveur.
Et c'est là que le véritable problème commence. La base de données contient souvent les données personnelles des clients, le code personnalisé reflète la logique commerciale, et la configuration stocke les clés API des services externes. Partager ces ressources avec plusieurs entités présente des risques. Vous ne pouvez pas être sûr de qui y aura accès ou de la manière dont elles seront sécurisées.
De plus, la préparation d'une version simplifiée de la base de données ou du code peut être longue. D'un autre côté, sans détails techniques, les agences ne peuvent pas préparer un devis fiable - elles peuvent surévaluer considérablement le coût ou refuser de fournir une estimation.
Cela soulève une question fondamentale : comment pouvez-vous transmettre les informations techniques nécessaires sans révéler de données sensibles ? La réponse est Druscan.
Qu'est-ce que Druscan et comment ça marche ?
Druscan est un outil open source d'audit technique de Drupal, que nous avons créé chez Droptica et que nous mettons à disposition gratuitement sous forme de projet GitHub. Il a été créé pour permettre une analyse de système fiable sans avoir à partager l'intégralité de la base de données ou du code source avec des entreprises externes.
En 2024, nous avons également développé un script pratique spécialement conçu pour analyser les projets en cours de migration de Drupal 7. Si vous utilisez encore cette version et envisagez de migrer, vous trouverez un outil pour estimer les coûts de migration de Drupal 7 à 11 dans notre article de blog. Druscan a des hypothèses similaires, mais couvre une gamme de données et de fonctions beaucoup plus large.
L'outil collecte toutes les informations nécessaires pour une évaluation technique du projet, sans révéler de données sensibles. Cela vous permet de préparer une image complète du système nécessaire pour l'évaluation ou l'analyse, tout en conservant une sécurité d'information complète.

Quelles données Druscan collecte-t-il lors d'un audit technique ?
L'outil effectue un audit technique automatique du système Drupal et collecte des informations détaillées dans plus de vingt domaines. Voici quelques exemples des éléments analysés.
Liste des modules
Druscan récupère une liste complète des modules installés dans le système, en distinguant les modules de base de Drupal, les modules contributifs et les modules personnalisés. Pour chacun d'entre eux, il enregistre la version, le statut d'activation, et les informations sur les correctifs appliqués.
Pour les modules personnalisés, le rapport comprend, entre autres, le nombre de lignes de code et les routings définis. Dans les mises à jour ultérieures, l'outil sera élargi avec des métriques supplémentaires sans révéler le contenu du code.
Architecture du contenu
Druscan analyse également l'architecture de contenu dans le système : types de contenu, nombre de champs, taxonomies, médias, utilisateurs et rôles. Il vérifie également la configuration des vues, qu'elles soient des pages, des blocs, et quels types elles sont. De plus, il vérifie le flux de travail et les autorisations, ce qui permet de mieux comprendre la logique de gestion du contenu.
Métriques de performance
L'outil évalue les paramètres de performance clés, teste la conformité avec le WCAG, et analyse les erreurs enregistrées dans le journal des événements (dblog). Il vérifie également s'il y a des tests automatisés dans le projet, ce qui peut être un indicateur important de la qualité et de la maturité du code.
Intégrations externes
Druscan identifie les intégrations de Drupal avec des services externes, entre autres, en analysant les modules responsables de la communication avec les API ou d'autres systèmes. Les données collectées sont enregistrées dans des rapports au format JSON et HTML, ce qui facilite leur lecture ou leur utilisation pour d'autres analyses.
Quelles données Druscan n'inclut-il PAS dans son audit technique ?
Tout aussi important que de savoir quelles informations Druscan collecte, c'est de comprendre ce qui n'est pas inclus dans le rapport. L'outil est conçu pour protéger toutes les données sensibles stockées dans le système Drupal.
Aucun contenu de base de données
Druscan ne collecte ni ne stocke aucun contenu de la base de données. Les articles, les descriptions de produits, les données des utilisateurs ou d'autres informations stockées dans les tables Drupal n'apparaîtront pas dans les rapports. L'outil ne copie aucun contenu textuel ou donnée commerciale.
Aucun code de module personnalisé
Le rapport ne contient pas le contenu du code des modules personnalisés. Druscan fournit seulement des métriques générales, comme le nombre de lignes de code ou des informations sur l'existence d'un module, sans révéler la logique commerciale. Le code reste entièrement protégé.
Aucune clé API
Druscan ne collecte pas de clés API ni aucun élément de configuration qui pourrait permettre un accès non autorisé à des systèmes externes. Les paramètres sensibles restent exclusivement dans votre environnement.
Aucun fichier ou média
L'audit ne couvre pas les fichiers multimédias ou les documents stockés dans le système. Le rapport n'inclut pas une liste de photos, de pièces jointes ou d'autres ressources. Tous les fichiers privés restent en dehors du champ d'analyse.
Quelles sont les exigences techniques, et comment installer Druscan ?
Druscan fonctionne dans un environnement basé sur DDEV, donc le système Drupal à auditer techniquement devrait être exécutée en utilisant celui-ci. DDEV est un outil de développement local, ce qui signifie que tout le processus d'analyse a lieu sur votre ordinateur. Aucune donnée n'est envoyée à des serveurs externes.
L'installation et l'exécution de l'analyse sont très simples. Dans le répertoire Druscan, créez un lien symbolique pointant vers le répertoire du projet Drupal, puis lancez le script d'audit. Le processus entier prend généralement environ 15 à 20 minutes, en fonction de la complexité du site analysé, et le résultat est un rapport technique complet.
Les deux modes de fonctionnement de Druscan : basique et avancé avec IA
Druscan propose deux modes de fonctionnement, vous permettant d'adapter son fonctionnement aux spécificités de votre projet.
Mode de base : audit en script shell
Dans sa version de base, Druscan fonctionne comme un script shell qui collecte des données techniques brutes sur le système. Vous pouvez ensuite analyser ces données vous-même ou les transmettre à des agences qui préparent une évaluation. Ce mode ne nécessite aucun outil supplémentaire autre que DDEV.
Pour l'exécuter, appelez la commande avec deux paramètres :
- le nom du répertoire du projet,
- l'URL du site web (local ou en production).
L'URL est utilisée, entre autres, pour effectuer des tests de vitesse de page et une analyse de conformité WCAG.
Mode avancé : analyse et recommandations alimentées par l'IA
Le deuxième mode utilise l'outil Cursor, conçu pour travailler avec du code avec le soutien de l'IA. Dans cette variante, Cursor lance d'abord un script de collecte de données standard et crée ensuite, sur la base des fichiers générés, une analyse et une liste de recommandations accompagnées d'estimations de temps pour chaque tâche.

Pour utiliser ce mode, vous devez d'abord préparer la configuration dans le répertoire .cursor, en définissant la commande appropriée avec une invite. Après avoir enregistré la configuration, vous pouvez lancer l'audit en tapant le slash (/) et en sélectionnant la commande préparée dans la liste des options disponibles.
À quoi ressemble un rapport d'audit technique de Druscan?
Comme je l'ai mentionné précédemment, Druscan analyse le système dans plus de vingt domaines. Le rapport généré présente ces données sous deux formats:
- JSON - utile pour une analyse automatique ultérieure ou des outils d'IA,
- HTML - un rapport clair qui peut être facilement consulté dans un navigateur.
Après le début de l'audit, un nouveau dossier marqué de la date est créé dans le répertoire Rapports d'audit. À mesure que l'outil fonctionne, des fichiers JSON supplémentaires lui sont ajoutés, chaque fichier correspondant à un domaine d'analyse différent, comprenant des informations sur la base de données, la liste des modules ou les mises à jour disponibles.
Page d'accueil du rapport
La première page du rapport HTML sert d'introduction. Elle contient une description du fonctionnement de l'outil, mais ne présente pas encore de données spécifiques à l'installation analysée.

Informations sur le système Drupal
Dans cette section, le rapport commence à présenter des données techniques spécifiques sur le système Drupal, notamment:
- le nombre de modules actifs,
- les versions des modules et les correctifs appliqués,
- un aperçu général de la configuration du système.

Mises à jour disponibles
La section Vérification des mises à jour montre quels modules ont des mises à jour disponibles, notamment:
- des mises à jour fonctionnelles (par exemple, Field Group 3.6 → 4.0),
- des changements de version majeure (par exemple, Flag 4.0 → 5.0),
- toutes les mises à jour de sécurité, clairement marquées en rouge.
Si tous les modules sont à jour en termes de sécurité, un message vert clair apparaît.

Structure des données (Structure des entités)
Dans la section Structure des entités, Druscan présente des informations détaillées sur les types de contenu dans le système: combien de types existent et combien d'éléments ont été créés dans chacun d'eux. Par exemple, le rapport peut montrer 12 articles et 39 documents, avec des informations supplémentaires sur combien d'entre eux ont été ajoutés au cours de la dernière année.
Cette mesure est extrêmement utile car de nombreux projets contiennent des types de contenu qui ont été créés une fois pour des tests ou des fonctions uniques et ne sont plus utilisés avec le temps. Si Druscan détecte qu'aucun nouvel élément ou modification n'est apparu dans un type de contenu donné pendant de nombreux mois, il peut être considéré comme inactif et omis de l'analyse ultérieure du système. Cela vous permet d'évaluer plus rapidement la structure de contenu réelle et d'organiser les éléments qui ne sont plus nécessaires.

Diagrammes automatiques
Le rapport génère des diagrammes interactifs montrant la structure du système. Ils peuvent être agrandis et déplacés. Les plus importants comprennent:
- la hiérarchie complète du menu principal,
- la structure de certains éléments de configuration.

Journaux de base de données
Dans cette section, vous trouverez les erreurs enregistrées dans le dblog ainsi que des informations sur les modules concernés. C'est un moyen rapide de déterminer la stabilité du système et les problèmes potentiels qui nécessitent une attention.

Section IA (optionnel)
Si l'audit technique a été exécuté en mode IA, le rapport contient une section supplémentaire avec des recommandations. Cela inclut:
- une liste des choses les plus importantes à améliorer,
- des recommandations pour l'optimisation,
- les aspects positifs de l'installation,
- des actions à entreprendre avec des priorités et des estimations du temps.
Comme toujours avec les outils d'IA, il est préférable de faire vérifier les recommandations par un spécialiste Drupal expérimenté.
Demo : comment fonctionne un audit technique Druscan sur un véritable projet
Pour montrer comment Druscan fonctionne en pratique, j'ai préparé une analyse de deux installations lancées localement: la version 1.2.5 de Drupal CMS et l'Open Intranet, qui est le starter de Droptica pour la construction d'intranets d'entreprise.
Structure du projet Druscan
Le dépôt Druscan sur GitHub a une structure simple et claire. Il contient:
- un répertoire scripts avec des fichiers qui effectuent les différentes étapes de l'audit,
- un répertoire template avec des modèles d'éléments de rapport,
- le script principal qui lance tout le processus (fichier audit.sh),
- une liste de vérifications, sur la base de laquelle le rapport est généré.
Vous pouvez facilement personnaliser l'outil pour répondre à vos besoins, par exemple, en ajoutant de nouveaux éléments d'analyse ou en modifiant ceux existants.

Préparation de l'environnement
Pour lancer l'audit, les installations Drupal sont ajoutées en tant que liens symboliques dans le répertoire Sites Drupal. Chaque lien symbolique pointe directement vers le répertoire web d'un site donné.
Dans l'exemple décrit, il y a deux projets:
- cms-drupal
- open-intranet
Cela permet à Druscan de "voir" plusieurs installations simultanément et de les analyser indépendamment.

Lancement d'un audit en mode de base
La numérisation commence par l'appel du script:
audit.sh <nom_du_répertoire> <adresse_URL>
Après le démarrage, un nouveau dossier avec la date est créé dans le répertoire Rapports d'audit, où apparaissent progressivement des fichiers JSON contenant des données successives:
- d'abord, des informations sur la base de données et la version de Drupal (résultat de drush status),
- puis une liste complète des modules,
- plus tard, les mises à jour disponibles,
- et ensuite d'autres éléments de configuration et de métrique.
Le fichier avec les modules est généralement le plus gros, car il contient des informations détaillées sur chacun d'entre eux.
Le Curseur n'est pas nécessaire pour ce mode. Le script peut être exécuté en local.

Exécution en mode Curseur avec IA
Le second mode utilise l'outil Cursor, dans lequel vous définissez la commande qui déclenche l'audit et l'invite décrivant la méthode d'analyse. Après avoir entré un slash (/) et sélectionné la commande Cursor préparée:
- Lance le script Druscan standard.
- Attendez que les fichiers JSON soient générés.
- Les analyse à l'aide de l'IA.
- Génère un résumé et des recommandations.
Dans le cas de l'installation d'Open Intranet, tout le processus a pris environ 17 minutes, après quoi une analyse complète avec une liste d'améliorations a été générée.
Résultats des audits techniques
Ci-dessous, des exemples de résultats d'audits effectués à l'aide de Druscan pour deux installations Drupal différentes.
Pour le système Open Intranet
Le rapport pour Open Intranet a montré:
- 149 modules actifs, avec leurs versions et les correctifs,
les mises à jour disponibles, par exemple, Field Group (3.6 → 4.0) et Flag (4.0 → 5.0), - aucune mise à jour de sécurité (message vert dans le rapport).
La section Structure des entités a montré:
- 12 articles,
- 39 documents,
- des informations sur combien d'entre eux ont été créés au cours de la dernière année, ce qui aide à déterminer quels types de contenu sont réellement utilisés.
Le rapport a également généré des diagrammes clairs, notamment un menu principal complet qui peut être agrandi et déplacé. Dix-sept erreurs ont été trouvées dans les journaux, dont une liée au module EDSA, qui nécessite un diagnostic supplémentaire.

Pour le CMS Drupal
Le second rapport - pour Drupal CMS - a été généré en mode de base, sans analyse IA.
Informations clés:
- Mise à jour disponible pour le module EDSA (2 → 3),
- le système utilise 110 modules,
- aucun module personnalisé,
- types de contenu : blog, étude de cas, événement, news, avec le nombre d'éléments,
- 19 vues actives,
- 0 erreurs dans le dblog, ce qui témoigne de la stabilité de l'installation.
Le test Lighthouse pour cette installation a donné un score de 100/100, confirmant une optimisation de performance élevée. Le rapport n'a indiqué que des problèmes mineurs liés au WCAG.

Quels sont quelques autres utilisations de Druscan ?
Bien que j'aie mentionné au début de l'article que Druscan est très utile pour préparer des devis ou changer d'agences, son champ d'application est bien plus large. L'outil fonctionne bien dans de nombreux scénarios quotidiens lorsqu'on travaille avec Drupal.
Intégration de nouveaux membres de l'équipe
Druscan vous permet de comprendre rapidement la structure du système lorsqu'un nouveau développeur rejoint le projet. Au lieu de revoir le code à partir de zéro, ils reçoivent un seul rapport complet contenant des informations sur les modules, les types de contenu, la configuration et l'architecture. Un tel rapport fonctionne également bien lorsqu'un projet est transféré entre les équipes. Il facilite le transfert des connaissances et raccourcit le temps de mise en œuvre.
Audits techniques réguliers
Notre outil d'audit technique peut être utilisé régulièrement, par exemple, tous les six mois, pour surveiller les changements dans le système. Comparer les rapports successifs vous permet de rapidement remarquer :
- de nouveaux modules ou modules supprimés,
- une dette technique croissante,
- des erreurs émergentes,
- des modifications dans la structure du contenu ou la configuration.
C'est une façon pratique de suivre l'évolution d'un projet et d'identifier les zones qui nécessitent une attention.
Soutien à la documentation technique
La documentation technique devient souvent obsolète, en particulier dans les projets en développement rapide. Druscan résout ce problème en générant un instantané automatique et toujours à jour de l'architecture du système.
Bien qu'il ne remplace pas la documentation complète du site web, c'est un excellent complément, en particulier lorsque vous avez besoin de :
- une liste de modules utilisés,
- une revue de la configuration,
- faire une structure de données et types de contenu.
Les rapports générés automatiquement reflètent toujours l'état réel du système.
Evaluation de la dette technique
Le rapport Druscan vous aide à déterminer facilement le niveau de dette technique de votre projet. Il montre, entre autres choses :
- le nombre de modules nécessitant des mises à jour,
- les composants obsolètes,
- les erreurs apparaissant dans les journaux.
Cela permet une meilleure planification du budget et de l'agenda de maintenance.
Vérification de la qualité du travail de l'agence
Druscan peut également être utile lorsque vous souhaitez évaluer la qualité de l'agence travaillant sur votre site web. Le rapport vous permet de vérifier si :
- le système est régulièrement mis à jour,
- le nombre d'erreurs dans les journaux est en augmentation,
- la structure du système reste cohérente et logique.
Voici une image objective de l'état technique du projet. Le rapport d'audit est particulièrement précieux avant le renouvellement d'un contrat, le changement de fournisseur ou le démarrage d'un volume de travail plus important.
Audit technique de Drupal avec Druscan – résumé
Druscan est utile non seulement dans le processus de changement d'agences. C'est un outil universel pour l'audit technique et la création de documentation pour les projets Drupal. Il vous permet de résoudre un problème fondamental dans l'industrie – comment partager des informations sur un site web ou un système sans risque de fuites de données sensibles.
L'outil est disponible avec des instructions d'installation claires. Si vous avez des questions, vous pouvez les poser sous la vidéo sur la chaîne « Nowoczesny Drupal » ou rapporter des bugs, et suggérer des améliorations ou de nouvelles fonctionnalités directement sur GitHub .
Pour plus d'informations sur notre outil, des extraits du rapport et un lien de téléchargement, visitez le site web de Druscan.