Randy Code
Tous les projets
DisponibleOSS

InfraLens

Un outil open source qui rassemble les principaux signaux techniques d'un site dans un rapport lisible.

Contexte

InfraLens est né du besoin de vérifier rapidement la configuration technique d'un site (DNS, sécurité, headers) sans jongler entre plusieurs outils différents. Conçu et maintenu en solo, en parallèle de projets clients, comme outil gratuit et open source plutôt que comme produit commercial.

Problème

Les développeurs et DevOps doivent jongler entre plusieurs outils pour inspecter DNS, headers HTTP et TLS d'un site.

Objectifs

Donner une vue lisible et rapide de la configuration technique publique d'un site, sans devenir un scanner de sécurité certifié, un outil de pentest ou une plateforme de monitoring commerciale. Rester gratuit, sans compte, open source.

Rôle

Je conçois, développe et maintiens InfraLens seul, du moteur d'analyse à l'interface.

Solution

InfraLens exécute 20 checks indépendants répartis en 6 catégories (HTTP & Sécurité, Réseau & DNS, Infrastructure, Structure du site, Métadonnées & Stack, Signaux de performance), via un pool à concurrence bornée côté serveur (jusqu'à 6 checks simultanés). Chaque check a un statut (Pass/Warning/Fail/Info/Inconclusive/Unavailable/Error), un score pondéré par check et une note globale de A à E. Résultats exportables en JSON ou Markdown, comparaison entre deux analyses, historique des 10 dernières analyses conservé localement dans le navigateur.

Architecture

Next.js 16 (App Router), TypeScript strict. Chaque check est un module indépendant et testable implémentant une interface commune, exécuté via Server Action avec un timeout de 8 secondes — l'échec d'un check n'interrompt pas les autres. Résolution DNS native (Node.js dns/promises) avec cache en mémoire, extraction de liens via Cheerio, lookup IP/ASN optionnel via ipapi.co. Interface en Tailwind CSS et shadcn/ui.

Choix techniques

Scoring pondéré par catégorie (45 points HTTP & Sécurité, 14 Réseau & DNS, 17 Métadonnées & Stack, 13 Signaux de performance, 11 Structure du site ; Infrastructure est informationnelle, poids 0), avec des multiplicateurs de statut (100% du poids si OK, 60% si Warning, 0% si Error) — transparent plutôt que boîte noire. Rate limiting par IP via Upstash (5 requêtes/minute, 30/heure) pour protéger le service et les résolveurs DNS.

Sécurité et confidentialité

Analyse passive uniquement, aucune exploitation ni scan intrusif. Pas de compte utilisateur ; l'IP n'est utilisée que comme clé de rate limiting (Upstash), jamais comme donnée de suivi. Historique stocké uniquement en local, pas de backend de stockage.

Résultat

Outil utilisé au quotidien, intégré nativement à Randy Code.

Enseignements

Garder InfraLens simple, gratuit et transparent demande de la discipline : résister à la tentation d'ajouter des fonctionnalités qui le feraient glisser vers un SaaS ou un outil de pentest commercial, alors que ce n'est ni son objectif ni son positionnement.

Stack :Next.jsTypeScriptNode.jsVercel