SentinelloSentinello

Un système d'alerte précoce pour les dépendances que vous ne surveillez plus.

À l'ère de l'IA, vous livrez plus de projets Node.js que vous ne pouvez en maintenir. Sentinello surveille chacun d'eux et révèle les CVE connues dans leurs dépendances npm — pour qu'un projet oublié ne devienne jamais un incident.

Lancez-le en une seule commande :

docker run -d \
  --name sentinello \
  -p 3870:3000 \
  -v sentinello-data:/app/data \
  -v sentinello-nvm:/root/.nvm \
  -v ~/Developer:/roots/personal:ro \
  ghcr.io/walkofcode/sentinello:latest

Fonctionne sur linux/amd64 et arm64

Pas de compte. Pas de SaaS. Pas de télémétrie. Une image Docker et un fichier SQLite — votre code et vos résultats ne quittent jamais votre machine.

Fonctionnalités

Tout dans un portail auto-hébergé — aucun service externe, aucune donnée ne quitte votre réseau.

File de triage unique

Voyez et triez les CVE de tout votre parc de projets à un seul endroit — au lieu d'un npm audit éparpillé sur une dizaine de copies.

Parcourir par projet ou par bibliothèque

Plongez dans n'importe quel dépôt pour ses résultats, ses versions de correction et son historique — ou basculez vers un paquet vulnérable pour voir tous les projets qu'il affecte et le mettre en sourdine partout d'un coup.

Analyse continue

Un processus en arrière-plan réanalyse selon une planification, pour que les nouveaux avis apparaissent sans que vous ayez à penser à vérifier.

Sources multiples

Au-delà de npm audit : comparaison avec la base OSV pour une couverture CVE plus large et la détection de paquets malveillants connus.

Notifications et webhooks

Recevez des alertes d'échecs et de résultats via Slack, Telegram ou un simple webhook — ciblées par root ou par projet, dans la langue de votre choix. Payloads JSON ou texte brut pour un agent d'auto-correction.

Serveur MCP

Connectez Claude Desktop, Cursor et d'autres clients MCP pour interroger les résultats, projets et bibliothèques — et lancer des analyses — sans quitter le chat.

Export d'avis

Exportez les résultats d'un projet ou d'une bibliothèque en Markdown, avec une invite de remédiation personnalisable pour votre équipe ou un LLM.

Une image, un fichier

Une image Docker et un fichier SQLite. Pas de serveur de base de données, pas de file de messages, aucune dépendance au cloud.

Roots auto-enregistrés

Tout ce qui est monté sous /roots est enregistré et analysé au démarrage — le nom du répertoire devient son libellé.

Node par projet

Respecte le .nvmrc de chaque projet, en installant et en mettant en cache une seule fois la version de Node qu'il fixe.

10 langues

L'interface du portail, les codes de motif d'analyse et les statuts sont traduits en 10 langues.

Captures

Voyez-le en action — le portail analysant quelques projets de démonstration. Cliquez sur une capture pour l'agrandir.

Comparaison

Sentinello n’est ni un Dependency-Track plus lourd ni un Snyk moins cher. Il occupe une autre niche : la longue traîne des projets Node que personne n’a reliés à un pipeline.

SentinelloDependency-TrackSnykDependabot
Sans configuration — pointez vers un dossier~~
Aucun SBOM / étape CI requis
Analyse les lockfiles résolus réels~
Détection de paquets malveillants
Auto-hébergé, sans SaaS
Une image + SQLite
Natif pour l’IA (MCP + export)~
Polyglotte (Python, Go, …)Prévu
Politique d’entreprise / VEX~~

Dependency-Track ne voit que les projets que quelqu'un a instrumentés avec un pipeline SBOM. Sentinello trouve ceux que vous avez oubliés. Ils sont plus forts sur la politique d’entreprise, et la couverture polyglotte est sur la feuille de route de Sentinello — si vous les utilisez déjà sur un pipeline mature, gardez-les. Sentinello est là pour le reste de votre parc de projets que personne ne surveille.

Pourquoi nous l'avons créé

À l'ère de l'IA, vous livrez plus que vous ne pouvez maintenir.

Aujourd'hui, un dev en solo lance, livre et passe à autre chose sur une dizaine de projets par an — le site vitrine, le tableau de bord client, le projet perso passé discrètement en production. Les protéger, ça voulait dire se connecter en SSH à chaque copie pour lancer npm audit à la main, ou découvrir une CVE Next.js dans les gros titres plusieurs jours après sa sortie. Personne ne tient le rythme sur une dizaine de dépôts, alors ça n'arrive tout simplement jamais.

Il suffit d'une seule dépendance oubliée présentant une faille critique d'exécution de code à distance. Le site le plus simple, celui que vous avez cessé de surveiller, devient la porte d'entrée.

« Pourquoi ne pas simplement utiliser Snyk ou Dependabot ? » Ceux-là vivent à l'intérieur du pipeline CI que vous avez mis en place — et la longue traîne n'en a jamais eu. Sentinello est le système d'alerte précoce pour tout le reste : pointez-le vers un dossier et il surveille chaque projet que vous avez oublié, faisant remonter chaque nouvelle CVE dans une seule file avant qu'elle ne devienne un incident.

Comment ça marche

Trois étapes. Aucun agent à installer dans vos projets, aucun compte à créer.

Pointez-le vers votre code

Montez vos dépôts sous /roots, ou ajoutez-les depuis Paramètres → Roots. Chaque répertoire est enregistré et découvert automatiquement au démarrage.

Il analyse en continu

Un processus en arrière-plan compare vos dépendances aux CVE connues selon une planification, en installant la version de Node que chaque projet fixe lorsque c'est nécessaire.

Triage dans une seule file

Chaque résultat de chaque projet arrive dans une seule file que vous pouvez filtrer par gravité — avec des alertes optionnelles vers Slack, Telegram ou un webhook.

À qui ça s'adresse

Sentinello s'adresse à tous ceux qui ont plus en production qu'ils ne peuvent surveiller — la personne qui développe seule, la petite équipe, l'agence qui jongle avec le travail client.

  • Vous livrez des projets perso et des sites clients qui doivent rester sûrs longtemps après le lancement.
  • Vous voulez une vue d'ensemble du parc de projets sans câbler la CI dans chaque dépôt.
  • Vous préférez l'auto-hébergement plutôt que de confier l'inventaire de votre code à un SaaS.

Si vous êtes une grande organisation avec Snyk ou Dependabot déjà intégrés dans un pipeline mature, gardez-les — Sentinello ne cherche pas à remplacer le SCA d'entreprise. Il est là pour le reste de votre parc de projets que personne ne surveille. Il est open source et sous licence MIT, vous pouvez donc lire exactement ce qu'il fait.

Notes de version

Sentinello évolue régulièrement — voici ce qu'a apporté chaque version.

Configuration MCP simplifiée, sans variables d’environnement

v2.3.0 · 9 juin 2026
  • Configurez MCP entièrement dans Paramètres → MCP : générez un jeton pour activer le point de terminaison /api/mcp, effacez-le pour le désactiver — les variables d’environnement SENTINELLO_MCP_ENABLED et SENTINELLO_MCP_API_TOKEN ont disparu (un jeton d’environnement existant est importé une fois lors de la mise à niveau)
  • Extraits de connexion prêts à coller pour Claude Code, Codex, Cursor et Claude Desktop, pré-remplis avec votre jeton
  • Lorsque SENTINELLO_PORTAL_BASE_URL est définie dans l’environnement, elle s’affiche en lecture seule dans Paramètres → Avancé, car elle reste prioritaire et est réappliquée à chaque démarrage

Moins de fausses alertes et des résultats qui se nettoient seuls

v2.2.0 · 9 juin 2026
  • Les avis de malware correspondent désormais à la version compromise exacte — une version saine ou déjà corrigée d’un paquet autrefois compromis n’est plus signalée
  • Les résultats en double se résolvent désormais d’eux-mêmes au prochain scan, si bien que les entrées anciennes ou orphelines disparaissent automatiquement
  • Les étiquettes production et développement sont désormais calculées d’une seule façon cohérente pour toutes les sources (npm et OSV)

Un en-tête de projet plus épuré et des filtres cohérents

v2.1.0 · 6 juin 2026
  • En-tête de projet simplifié — renommez à côté du titre, avec la mise en sourdine et les tags en icônes
  • Filtrez les résultats par source (npm / OSV) depuis un nouveau menu déroulant à côté du filtre de type de dépendance
  • Menus déroulants unifiés et cohérents dans toute l’application, avec recherche instantanée sur les longues listes comme les fuseaux horaires

Conseils de mise à niveau plus clairs

v2.0.1 · 4 juin 2026
  • Étapes de mise à niveau détaillées pour les changements incompatibles de la 2.0
  • Le README indique la liaison du port en localhost uniquement

Analyse multi-source et une installation renforcée, sécurisée par défaut

v2.0.0 · 4 juin 2026
  • OSV comme deuxième source optionnelle (Paramètres → Sources, désactivée par défaut) avec détection des paquets malveillants, comparée à la base de données publique OSV dans un cache local
  • Les résultats sont désormais fusionnés entre sources — une ligne par vulnérabilité, chaque source étiquetée, le meilleur correctif disponible et l’union des chemins de dépendances, avec un filtre par source et une infobulle de chemin de dépendance
  • Renforcement de la sécurité : le point de terminaison MCP est désactivé par défaut et requiert un jeton, la livraison des webhooks est protégée contre le SSRF, une page de connexion optionnelle au portail, et le conteneur s’exécute en utilisateur non privilégié
  • Les Paramètres forment désormais une section de premier niveau avec une barre latérale et une page Profil

Intégration MCP et nouveautés

v1.4.0 · 29 mai 2026
  • Serveur MCP sur /api/mcp pour Claude Desktop, Cursor et d’autres clients
  • Nouvelle section Paramètres → MCP avec URL du serveur et gestion des jetons
  • Pastille de nouveautés et historique des notes de version

Correction de la version dans le pied de page

v1.3.1 · 28 mai 2026
  • La version en cours s’affiche correctement dans le pied de page

Améliorations des notifications

v1.3.0 · 28 mai 2026
  • Filtrer les notifications par environnement
  • Formulaire d’édition des cibles simplifié
  • Dupliquer une cible de notification existante

Pages Projets et Bibliothèques

v1.2.0 · 24 mai 2026
  • La vue d’accueil est divisée en pages Projets et Bibliothèques dédiées

Rechargement du planning en direct

v1.1.2 · 24 mai 2026
  • Le worker recharge le planning d’analyse dès que vous enregistrez des modifications dans le portail

Suppressions plus sûres et bannière de mise à jour plus claire

v1.1.0 · 23 mai 2026
  • Confirmation avant la suppression de racines et de cibles de notification
  • L’avis de mise à jour devient une bannière supérieure que l’on peut fermer
  • Le worker supprime les racines obsolètes quand leur montage disparaît

Corrections de précision du scanner

v1.0.1 · 23 mai 2026
  • Écarte les résultats dont la version installée n’est pas réellement dans la plage vulnérable
  • Permet de supprimer une cible de notification ayant un historique d’envois

Première version open source

v1.0.0 · 23 mai 2026
  • La première version publique de Sentinello

Feuille de route

Aujourd'hui, Sentinello surveille vos dépendances Node.js. Voici où il va — et ce que vous pouvez demander.

Priorisation plus intelligente

Prévu

Classez les résultats selon leur exploitabilité et selon que le code vulnérable est réellement atteignable — triez d’abord l’essentiel.

Plus d’écosystèmes

Prévu

Étendre l’analyse au-delà de Node vers Python, Go et Rust, avec la même découverte native du système de fichiers.

Plus d'intégrations

Prévu

Plus de canaux de notification et de façons de connecter Sentinello aux outils que votre équipe utilise déjà.

Analyse statique (SAST)

Prévu

Repérez les motifs de code risqués dans votre propre code, pas seulement les CVE connues de vos dépendances.

Analyse des secrets et licences

Prévu

Signalez les secrets commités et les problèmes de licence sur le même parc de projets, dans la même file.

Demander une intégration ou une source

Dites-nous ce que vous intégreriez ou analyseriez ensuite — ouvrez un ticket sur GitHub et aidez à façonner la feuille de route.