見守るのをやめた依存関係のための、早期警告システム。
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ライセンスなので、何をしているかを正確に読むことができます。