SentinelloSentinello

見守るのをやめた依存関係のための、早期警告システム。

AIの時代、あなたは維持できる以上の Node.js プロジェクトをリリースしています。Sentinelloはそのすべてを見守り、npm 依存関係に潜む既知のCVEを浮かび上がらせます。忘れられたプロジェクトがインシデントになる前に。

コマンド1つで実行:

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

アカウント不要。SaaSなし。テレメトリなし。Dockerイメージ1つとSQLiteファイル1つ — あなたのコードと検出結果がマシンの外に出ることはありません。

仕組み

3ステップ。プロジェクトにインストールするエージェントも、作成するアカウントも不要です。

コードを指定する

リポジトリを /roots にマウントするか、設定 → Roots から追加します。各ディレクトリは起動時に自動登録・検出されます。

継続的にスキャン

バックグラウンドのワーカーがスケジュールに沿って依存関係を既知のCVEと照合し、各プロジェクトが固定するNodeのバージョンを必要に応じてインストールします。

1つのキューでトリアージ

すべてのプロジェクトのすべての検出結果が、深刻度で絞り込める1つのキューに集まります。Slack、Telegram、Webhookへの通知も任意で設定できます。

機能

セルフホスト型ポータルにすべてを — 外部サービスなし、データがネットワークの外に出ることもありません。

単一のトリアージキュー

十数個のチェックアウトに散らばった npm audit ではなく、ポートフォリオ全体のCVEを1か所で確認・トリアージできます。

プロジェクト別に見る

任意のリポジトリを開いて、現在の検出結果、修正バージョン、スキャン履歴、ミュートを確認できます。

ライブラリ別に見る

脆弱なパッケージに切り替えて、影響を受けるすべてのプロジェクトを確認し、すべてを一度にミュートできます。

継続的なスキャン

バックグラウンドのワーカーがスケジュールに沿って再スキャンするので、確認を覚えていなくても新しいアドバイザリが表示されます。

深刻度でのフィルタ

検出結果を深刻度で並べ替え・絞り込み、クリティカルを先に、ノイズを後に対処できます。

通知

失敗や検出のアラートを、Slack、Telegram、またはシンプルなWebhookで、選んだ言語で受け取れます。

アドバイザリのエクスポート

プロジェクトまたはライブラリの検出結果を Markdown でエクスポート。チームや LLM 向けにカスタマイズ可能な修復プロンプト付き。

1つのイメージ、1つのファイル

Dockerイメージ1つとSQLiteファイル1つ。データベースサーバーも、メッセージキューも、クラウドへの依存もありません。

自動登録されるRoots

/roots にマウントしたものは起動時に登録・スキャンされます — ディレクトリ名がそのラベルになります。

プロジェクトごとのNode

各プロジェクトの .nvmrc を尊重し、固定されたNodeのバージョンを一度だけインストール・キャッシュします。

10言語

ポータルのUI、スキャンの理由コード、ステータスは10言語にローカライズされています。

通知とWebhook

プロジェクトに脆弱性が見つかった瞬間に通知を受け取り、修正のための独自の自動化をトリガーできます。

Slack

Incoming Webhook で任意のチャンネルに検出結果を投稿。太字や箇条書きもネイティブに表示されます。

Telegram

ボット経由でチャットやグループにアラートを送信。生のマークアップではなく、正しく整形されて表示されます。

Webhook

任意のエンドポイントに POST して、チームが既に使っている場所へアラートを届けられます。

2 つの Webhook 形式

構築するものに合ったペイロードを選べます。

構造化 JSON

ルート・プロジェクト・脆弱性のリスト(ライブラリ、バージョン、推奨バージョン、アドバイザリ付き)。自動修正エージェントがそのまま処理できます。

プレーンテキストのアドバイザリ

ポータルに表示されるアドバイザリのエクスポートをテキストで送信。LLM にそのまま渡してトリアージ・修正できます。

ルートまたはプロジェクト単位

すべてを 1 か所に送ることも、特定のルート — または単一のプロジェクト — を専用のチャンネルや Webhook に割り当てることもできます。

スクリーンショット

実際の動作を見る — いくつかのデモプロジェクトをスキャンするポータル。任意の画像をクリックすると拡大表示します。

セルフホスト

数分でセルフホスト。コピーして貼り付け、localhostを開くだけ。本番ではバージョンタグを固定してください。

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

/roots にマウントしたものは起動時に自動登録され — ディレクトリ名がそのラベルになります — 検出とスキャンがひとりでに始まります。マウントは任意で、ポータルからRootsを追加することもできます。

私たちがこれを作った理由

AIの時代、あなたは維持できる以上のものをリリースしています。

今や1人の開発者が、年に十数件のプロジェクトを立ち上げ、納品し、そして離れていきます。マーケティングサイト、顧客向けダッシュボード、ひっそりと本番に出た個人プロジェクト — それらは、誰かが最後に目を通してからずっと後も動き続けます。

クリティカルなリモートコード実行の欠陥を抱えた、忘れられた依存関係が1つあれば十分です。最も単純なサイトが侵入口になり得ます。

Sentinelloは、そのロングテールのための早期警告システムです。指定したすべてのプロジェクトを見守るので、数か月前にリリースした何かに新しいCVEが現れても、災害になる前に1か所に表示されます。

ロードマップ

Sentinello は今、あなたの Node.js 依存関係を見守っています。これからの方向性と、あなたがリクエストできることを紹介します。

より多くの脆弱性ソース

予定

npm のアドバイザリデータベースに加え、OSV などのフィードを追加し、より広く早く検出します。

より多くの連携

予定

通知チャンネルを増やし、チームがすでに使っているツールと Sentinello をつなぐ方法を広げます。

静的解析(SAST)

予定

依存関係の既知の CVE だけでなく、あなた自身のソースコードの危険なパターンも検出します。

シークレットとライセンスのスキャン

予定

コミットされたシークレットやライセンスの問題を、同じポートフォリオの同じキューで検出します。

連携やソースをリクエスト

次に連携・スキャンしてほしいものを教えてください — GitHub で Issue を立てて、ロードマップづくりに参加しましょう。

対象となる人

Sentinelloは、見守れる以上のものを本番に抱えるすべての人のためのものです — 1人で開発する人、小さなチーム、顧客の仕事をやりくりするエージェンシー。

  • リリース後もずっと安全であり続ける必要のある、個人プロジェクトや顧客サイトをリリースしている。
  • すべてのリポジトリにCIを組み込まずに、ポートフォリオ全体を俯瞰したい。
  • コードの一覧をSaaSに渡すより、セルフホストしたい。

成熟したパイプラインにSnykやDependabotをすでに組み込んでいる大規模な組織なら、それを使い続けてください — Sentinelloはエンタープライズ向けSCAを置き換えようとはしていません。誰も見ていない、残りのポートフォリオのためにあります。オープンソースかつMITライセンスなので、何をしているかを正確に読むことができます。