SentinelloSentinello

Un sistema di allerta precoce per le dipendenze che hai smesso di sorvegliare.

Nell'era dell'IA pubblichi più progetti Node.js di quanti tu possa mantenerne. Sentinello sorveglia ognuno e rivela i CVE noti nelle loro dipendenze npm — così un progetto dimenticato non diventa mai un incidente.

Avvialo con un solo comando:

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

Funziona su linux/amd64 e arm64

Nessun account. Nessun SaaS. Nessuna telemetria. Un'immagine Docker e un file SQLite — il tuo codice e i tuoi risultati non lasciano mai la tua macchina.

Funzionalità

Tutto in un portale self-hosted — nessun servizio esterno, nessun dato che lascia la tua rete.

Coda di triage unica

Vedi e fai il triage dei CVE di tutto il tuo portafoglio in un solo posto — invece di npm audit sparso su una dozzina di copie.

Sfoglia per progetto o libreria

Entra in qualsiasi repository per vederne i risultati, le versioni di correzione e la cronologia — oppure passa a un pacchetto vulnerabile per vedere ogni progetto interessato e silenziarlo ovunque in una volta sola.

Scansione continua

Un processo in background riscansiona secondo una pianificazione, così i nuovi avvisi compaiono senza che tu debba ricordarti di controllare.

Più fonti

Oltre a npm audit: confronto con il database OSV per una copertura CVE più ampia e il rilevamento di pacchetti dannosi noti.

Notifiche e webhook

Ricevi avvisi di errori e risultati via Slack, Telegram o un semplice webhook — definiti per root o per progetto, nella lingua che scegli. Payload JSON o in testo semplice per un agente di auto-correzione.

Server MCP

Collega Claude Desktop, Cursor e altri client MCP per interrogare risultati, progetti e librerie — e avviare scansioni — senza lasciare la chat.

Esportazione avvisi

Esporta i risultati di un progetto o di una libreria come Markdown, con un prompt di remediation personalizzabile per il tuo team o un LLM.

Un'immagine, un file

Un'immagine Docker e un file SQLite. Nessun server di database, nessuna coda di messaggi, nessuna dipendenza dal cloud.

Roots auto-registrati

Tutto ciò che è montato sotto /roots viene registrato e scansionato all'avvio — il nome della directory diventa la sua etichetta.

Node per progetto

Rispetta il .nvmrc di ogni progetto, installando e mettendo in cache una sola volta la versione di Node che fissa.

10 lingue

L'interfaccia del portale, i codici motivo di scansione e gli stati sono tradotti in 10 lingue.

Screenshot

Guardalo in azione — il portale mentre scansiona alcuni progetti dimostrativi. Clicca su qualsiasi immagine per ingrandirla.

Come si confronta

Sentinello non è un Dependency-Track più pesante né uno Snyk più economico. Occupa un’altra nicchia: la coda lunga di progetti Node che nessuno ha collegato a una pipeline.

SentinelloDependency-TrackSnykDependabot
Senza configurazione — punta a una cartella~~
Nessun SBOM / passaggio CI richiesto
Analizza lockfile risolti reali~
Rilevamento pacchetti dannosi
Self-hosted, niente SaaS
Una sola immagine + SQLite
Nativo per l’IA (MCP + export)~
Poliglotta (Python, Go, …)Pianificato
Policy aziendale / VEX~~

Dependency-Track vede solo i progetti che qualcuno ha strumentato con una pipeline SBOM. Sentinello trova quelli che hai dimenticato. Sono più forti sulla policy aziendale, e la copertura poliglotta è nella roadmap di Sentinello — se li usi già su una pipeline matura, tienili. Sentinello è per il resto del tuo portafoglio che nessuno sta osservando.

Perché l'abbiamo creato

Nell'era dell'IA, pubblichi più di quanto tu possa mantenere.

Oggi chi sviluppa da solo avvia, consegna e si lascia alle spalle una dozzina di progetti all'anno — il sito vetrina, la dashboard del cliente, il progetto personale finito in produzione in sordina. Un tempo, tenerli al sicuro significava collegarsi in SSH a ogni checkout per lanciare npm audit a mano, oppure scoprire un CVE di Next.js da un titolo di giornale giorni dopo che era uscito. Nessuno tiene quel ritmo su una dozzina di repository, quindi alla fine non lo fa proprio nessuno.

Basta una sola dipendenza dimenticata con una falla critica di esecuzione di codice remoto. Il sito più semplice che hai smesso di sorvegliare diventa la via d'accesso.

«Perché non usare semplicemente Snyk o Dependabot?» Quelli vivono dentro la pipeline CI che hai cablato — e la coda lunga non ne ha mai avuta una. Sentinello è il sistema di allerta precoce per tutto il resto: puntalo a una cartella e sorveglia ogni progetto che hai dimenticato, facendo emergere ogni nuovo CVE in un'unica coda prima che diventi un incidente.

Come funziona

Tre passi. Nessun agente da installare nei tuoi progetti, nessun account da creare.

Puntalo al tuo codice

Monta i tuoi repository sotto /roots, oppure aggiungili da Impostazioni → Roots. Ogni directory viene registrata e individuata automaticamente all'avvio.

Scansiona di continuo

Un processo in background confronta le tue dipendenze con i CVE noti secondo una pianificazione, installando la versione di Node che ogni progetto fissa quando serve.

Triage in un'unica coda

Ogni risultato di ogni progetto arriva in un'unica coda che puoi filtrare per gravità — con avvisi opzionali verso Slack, Telegram o un webhook.

A chi è rivolto

Sentinello è per tutti coloro che hanno più in produzione di quanto riescano a sorvegliare — chi sviluppa da solo, il piccolo team, l'agenzia che destreggia il lavoro dei clienti.

  • Pubblichi progetti personali e siti dei clienti che devono restare sicuri a lungo dopo il lancio.
  • Vuoi una vista sull'intero portafoglio senza cablare la CI in ogni repository.
  • Preferisci il self-hosting piuttosto che affidare l'inventario del tuo codice a un SaaS.

Se sei una grande organizzazione con Snyk o Dependabot già integrati in una pipeline matura, tienili — Sentinello non cerca di sostituire lo SCA enterprise. È qui per il resto del tuo portafoglio che nessuno sorveglia. È open source e con licenza MIT, così puoi leggere esattamente cosa fa.

Note di rilascio

Sentinello viene aggiornato spesso: ecco cosa ha portato ogni versione.

Configurazione MCP più semplice, senza variabili d’ambiente

v2.3.0 · 9 giu 2026
  • Configura MCP interamente in Impostazioni → MCP: genera un token per attivare l’endpoint /api/mcp, cancellalo per disattivarlo — le variabili d’ambiente SENTINELLO_MCP_ENABLED e SENTINELLO_MCP_API_TOKEN non esistono più (un token d’ambiente esistente viene importato una volta durante l’aggiornamento)
  • Frammenti di connessione pronti da incollare per Claude Code, Codex, Cursor e Claude Desktop, già compilati con il tuo token
  • Quando SENTINELLO_PORTAL_BASE_URL è impostata nell’ambiente, viene mostrata in sola lettura in Impostazioni → Avanzate, poiché resta autoritativa e viene riapplicata a ogni avvio

Meno falsi allarmi e risultati che si ripuliscono da soli

v2.2.0 · 9 giu 2026
  • Gli avvisi di malware ora corrispondono alla versione compromessa esatta — una versione pulita o già corretta di un pacchetto un tempo compromesso non viene più segnalata
  • I risultati duplicati ora si risolvono da soli alla scansione successiva, così le voci vecchie o orfane vengono eliminate automaticamente
  • Le etichette di produzione e sviluppo ora vengono calcolate in un unico modo coerente su tutte le sorgenti (npm e OSV)

Un’intestazione di progetto più pulita e filtri coerenti

v2.1.0 · 6 giu 2026
  • Intestazione di progetto semplificata — rinomina accanto al titolo, con silenzia e tag come icone
  • Filtra i risultati per fonte (npm / OSV) da un nuovo menu a discesa accanto al filtro per tipo di dipendenza
  • Menu a discesa unificati e coerenti in tutta l’app, con ricerca durante la digitazione per elenchi lunghi come i fusi orari

Indicazioni di aggiornamento più chiare

v2.0.1 · 4 giu 2026
  • Passaggi di aggiornamento ampliati per le modifiche incompatibili della 2.0
  • Il README segnala il binding della porta solo su localhost

Scansione multi-sorgente e un’installazione rafforzata e sicura per impostazione predefinita

v2.0.0 · 4 giu 2026
  • OSV come seconda sorgente opzionale (Impostazioni → Fonti, disattivata per impostazione predefinita) con rilevamento di pacchetti dannosi, confrontata con il database pubblico OSV in una cache locale
  • I risultati ora vengono uniti tra le sorgenti — una riga per vulnerabilità, ogni sorgente etichettata, la migliore correzione disponibile e l’unione dei percorsi di dipendenza, con un filtro per sorgente e un popover del percorso di dipendenza
  • Rafforzamento della sicurezza: l’endpoint MCP è disattivato per impostazione predefinita e richiede un token, la consegna dei webhook è protetta da SSRF, un gate di accesso opzionale al portale, e il contenitore viene eseguito come utente senza privilegi
  • Impostazioni è ora una sezione di primo livello con barra laterale e una pagina Profilo

Integrazione MCP e novità

v1.4.0 · 29 mag 2026
  • Server MCP su /api/mcp per Claude Desktop, Cursor e altri client
  • Nuova sezione Impostazioni → MCP con URL del server e gestione dei token
  • Badge delle novità e una cronologia delle note di rilascio

Correzione della versione nel piè di pagina

v1.3.1 · 28 mag 2026
  • La versione in esecuzione viene mostrata correttamente nel piè di pagina

Miglioramenti alle notifiche

v1.3.0 · 28 mag 2026
  • Filtra le notifiche per ambiente
  • Modulo di modifica delle destinazioni più semplice
  • Duplica una destinazione di notifica esistente

Pagine Progetti e Librerie

v1.2.0 · 24 mag 2026
  • La schermata iniziale è divisa in pagine dedicate Progetti e Librerie

Ricaricamento della pianificazione in tempo reale

v1.1.2 · 24 mag 2026
  • Il worker ricarica la pianificazione della scansione non appena salvi le modifiche nel portale

Eliminazioni più sicure e un avviso di aggiornamento più chiaro

v1.1.0 · 23 mag 2026
  • Conferma prima di eliminare radici e destinazioni di notifica
  • L’avviso di aggiornamento diventa un banner superiore richiudibile
  • Il worker rimuove le radici obsolete quando il loro mount scompare

Correzioni di precisione dello scanner

v1.0.1 · 23 mag 2026
  • Scarta i risultati la cui versione installata non è realmente nell’intervallo vulnerabile
  • Consente di eliminare una destinazione di notifica con cronologia di invio

Prima versione open source

v1.0.0 · 23 mag 2026
  • La prima versione pubblica di Sentinello

Roadmap

Oggi Sentinello sorveglia le tue dipendenze Node.js. Ecco dove sta andando — e cosa puoi richiedere.

Priorità più intelligente

Pianificato

Ordina i risultati per sfruttabilità e per l’effettiva raggiungibilità del codice vulnerabile — gestisci prima ciò che conta.

Più ecosistemi

Pianificato

Estendere la scansione oltre Node a Python, Go e Rust, con la stessa scoperta nativa del filesystem.

Più integrazioni

Pianificato

Più canali di notifica e modi per collegare Sentinello agli strumenti che il tuo team già usa.

Analisi statica (SAST)

Pianificato

Individua schemi di codice rischiosi nel tuo codice, non solo i CVE noti nelle dipendenze.

Scansione di segreti e licenze

Pianificato

Segnala segreti committati e problemi di licenza nello stesso portafoglio, nella stessa coda.

Richiedi un'integrazione o una fonte

Dicci cosa integreresti o analizzeresti dopo — apri una issue su GitHub e aiuta a definire la roadmap.