見守るのをやめた依存関係のための、早期警告システム。
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:latestlinux/amd64 と arm64 で動作
アカウント不要。SaaSなし。テレメトリなし。Dockerイメージ1つとSQLiteファイル1つ — あなたのコードと検出結果がマシンの外に出ることはありません。
機能
セルフホスト型ポータルにすべてを — 外部サービスなし、データがネットワークの外に出ることもありません。
単一のトリアージキュー
十数個のチェックアウトに散らばった npm audit ではなく、ポートフォリオ全体のCVEを1か所で確認・トリアージできます。
プロジェクト別・ライブラリ別に見る
任意のリポジトリを開いて、検出結果、修正バージョン、履歴を掘り下げる — あるいは脆弱なパッケージに切り替えて、影響を受けるすべてのプロジェクトを確認し、一度にすべてをミュートできます。
継続的なスキャン
バックグラウンドのワーカーがスケジュールに沿って再スキャンするので、確認を覚えていなくても新しいアドバイザリが表示されます。
複数のソース
npm audit を超えて、OSV データベースと照合し、より広い CVE カバレッジと既知の悪意あるパッケージの検出を実現します。
通知とWebhook
失敗や検出のアラートを、Slack、Telegram、またはシンプルなWebhookで受け取れます — ルートまたはプロジェクト単位でスコープ指定でき、言語も選べます。自動修正エージェント向けに JSON またはプレーンテキストのペイロードを送信します。
MCP サーバー
Claude Desktop や Cursor などの MCP クライアントを接続し、チャットを離れずに検出結果・プロジェクト・ライブラリを照会し、スキャンを実行できます。
アドバイザリのエクスポート
プロジェクトまたはライブラリの検出結果を Markdown でエクスポート。チームや LLM 向けにカスタマイズ可能な修復プロンプト付き。
1つのイメージ、1つのファイル
Dockerイメージ1つとSQLiteファイル1つ。データベースサーバーも、メッセージキューも、クラウドへの依存もありません。
自動登録されるRoots
/roots にマウントしたものは起動時に登録・スキャンされます — ディレクトリ名がそのラベルになります。
プロジェクトごとのNode
各プロジェクトの .nvmrc を尊重し、固定されたNodeのバージョンを一度だけインストール・キャッシュします。
10言語
ポータルのUI、スキャンの理由コード、ステータスは10言語にローカライズされています。
スクリーンショット
実際の動作を見る — いくつかのデモプロジェクトをスキャンするポータル。任意の画像をクリックすると拡大表示します。
比較
Sentinello は重い Dependency-Track でも安価な Snyk でもありません。別のニッチを担います。誰もパイプラインに組み込まなかった Node プロジェクトのロングテールです。
| Sentinello | Dependency-Track | Snyk | Dependabot | |
|---|---|---|---|---|
| 設定不要 — フォルダーを指定するだけ | ~ | ~ | ||
| SBOM / CI ステップ不要 | ||||
| 実際の解決済みロックファイルをスキャン | ~ | |||
| 悪意あるパッケージの検出 | ||||
| セルフホスト、SaaS なし | ||||
| 単一イメージ + SQLite | ||||
| AI ネイティブ(MCP + エクスポート) | ~ | |||
| 多言語(Python、Go、…) | 予定 | |||
| エンタープライズポリシー / VEX | ~ | ~ |
Dependency-Track は、誰かが SBOM パイプラインで計装したプロジェクトしか見えません。Sentinello は忘れられたものを見つけます。エンタープライズポリシーでは相手が優れており、多言語カバレッジは Sentinello のロードマップにあります — 成熟したパイプラインで既に使っているなら、そのまま使ってください。Sentinello は、誰も見ていない残りのポートフォリオのためのものです。
私たちがこれを作った理由
AIの時代、あなたは維持できる以上のものをリリースしています。
今や1人の開発者が、年に十数件のプロジェクトを立ち上げ、納品し、そして離れていきます — マーケティングサイト、顧客向けダッシュボード、ひっそりと本番に出た個人プロジェクト。これらを安全に保つには、かつてはチェックアウトごとに SSH で入って手作業で npm audit を回すか、Next.js のCVEを公開から数日後にニュースの見出しで知るしかありませんでした。十数個ものリポジトリでそんなことを続けられる人はいないので、結局まったく行われません。
クリティカルなリモートコード実行の欠陥を抱えた、忘れられた依存関係が1つあれば十分です。見るのをやめた最も単純なサイトが、侵入口になります。
「Snyk や Dependabot を使えばいいのでは?」 — それらは、あなたが組み込んだ CI パイプラインの中で動きます。そしてロングテールにはそのパイプラインがありません。Sentinello は、それ以外すべてのための早期警告システムです。フォルダーを指定すれば、忘れていたすべてのプロジェクトを見守り、新しいCVEがインシデントになる前に1つのキューに浮かび上がらせます。
仕組み
3ステップ。プロジェクトにインストールするエージェントも、作成するアカウントも不要です。
コードを指定する
リポジトリを /roots にマウントするか、設定 → Roots から追加します。各ディレクトリは起動時に自動登録・検出されます。
継続的にスキャン
バックグラウンドのワーカーがスケジュールに沿って依存関係を既知のCVEと照合し、各プロジェクトが固定するNodeのバージョンを必要に応じてインストールします。
1つのキューでトリアージ
すべてのプロジェクトのすべての検出結果が、深刻度で絞り込める1つのキューに集まります。Slack、Telegram、Webhookへの通知も任意で設定できます。
対象となる人
Sentinelloは、見守れる以上のものを本番に抱えるすべての人のためのものです — 1人で開発する人、小さなチーム、顧客の仕事をやりくりするエージェンシー。
- リリース後もずっと安全であり続ける必要のある、個人プロジェクトや顧客サイトをリリースしている。
- すべてのリポジトリにCIを組み込まずに、ポートフォリオ全体を俯瞰したい。
- コードの一覧をSaaSに渡すより、セルフホストしたい。
成熟したパイプラインにSnykやDependabotをすでに組み込んでいる大規模な組織なら、それを使い続けてください — Sentinelloはエンタープライズ向けSCAを置き換えようとはしていません。誰も見ていない、残りのポートフォリオのためにあります。オープンソースかつMITライセンスなので、何をしているかを正確に読むことができます。
リリースノート
Sentinello は頻繁に更新されています。各リリースの内容をご紹介します。
よりシンプルな MCP 設定 — 環境変数は不要
v2.3.0 · 2026/06/09- MCP の設定はすべて「設定 → MCP」で完結します。トークンを生成すると /api/mcp エンドポイントがオンになり、削除するとオフになります — SENTINELLO_MCP_ENABLED と SENTINELLO_MCP_API_TOKEN の環境変数は廃止されました(既存の環境変数トークンはアップグレード時に一度だけ取り込まれます)
- Claude Code、Codex、Cursor、Claude Desktop 向けの貼り付けるだけの接続スニペット。トークンが入力済みです
- SENTINELLO_PORTAL_BASE_URL を環境変数で設定している場合、優先され起動のたびに再適用されるため、「設定 → 詳細設定」では読み取り専用で表示されます
誤検知の低減と、自動で整理される検出結果
v2.2.0 · 2026/06/09- マルウェアのアドバイザリが、影響を受ける正確なバージョンと照合されるようになりました。かつて侵害されたパッケージでも、クリーンな、または修正済みのバージョンはもう検出されません
- 重複した検出結果が次回のスキャンで自動的に解決され、古い項目や取り残された項目が自動でクリアされます
- 本番(production)と開発(development)のラベルが、すべてのソース(npm と OSV)で一貫した単一の方法で算出されるようになりました
すっきりしたプロジェクトヘッダーと一貫したフィルター
v2.1.0 · 2026/06/06- プロジェクトヘッダーを簡素化 — タイトルの横で名前を変更でき、ミュートとタグはアイコンに
- 依存タイプフィルターの横の新しいドロップダウンから、ソース(npm / OSV)で検出結果を絞り込み
- アプリ全体でドロップダウンを統一し、タイムゾーンなどの長いリストでは入力して検索可能に
よりわかりやすいアップグレード手順
v2.0.1 · 2026/06/04- 2.0 の破壊的変更に関するアップグレード手順を拡充
- README に localhost のみのポートバインドを明記
複数ソースのスキャンと、デフォルトで安全な堅牢化されたインストール
v2.0.0 · 2026/06/04- 任意の第2ソースとしての OSV(設定 → ソース、デフォルトはオフ)。悪意あるパッケージ検出を備え、ローカルキャッシュ内の公開 OSV データベースと照合します
- 検出結果がソース間で統合されるようになりました。脆弱性ごとに1行で、各ソースをタグ付けし、利用可能な最良の修正と依存パスの和集合を示し、ソースフィルターと依存パスのポップオーバーを備えます
- セキュリティ強化: MCP エンドポイントはデフォルトでオフかつトークンが必要、Webhook 配信は SSRF から保護、任意のポータルログインゲート、コンテナは非特権ユーザーとして実行されます
- 設定が、サイドバーとプロフィールページを備えたトップレベルのセクションになりました
MCP 連携と新着情報
v1.4.0 · 2026/05/29- Claude Desktop、Cursor などのクライアント向けの /api/mcp の MCP サーバー
- サーバー URL とトークン管理を備えた新しい「設定 → MCP」セクション
- 新着情報バッジとリリースノートの履歴
フッターのバージョン表示の修正
v1.3.1 · 2026/05/28- 実行中のバージョンがフッターに正しく表示されます
通知の改善
v1.3.0 · 2026/05/28- 環境ごとに通知をフィルタリング
- 通知先の編集フォームを簡素化
- 既存の通知先を複製
プロジェクトとライブラリのページ
v1.2.0 · 2026/05/24- ホーム画面が専用のプロジェクトページとライブラリページに分割されました
スケジュールのライブ再読み込み
v1.1.2 · 2026/05/24- ポータルで変更を保存すると、ワーカーがスキャンスケジュールをすぐに再読み込みします
より安全な削除と分かりやすい更新バナー
v1.1.0 · 2026/05/23- ルートと通知先を削除する前に確認
- 更新のお知らせが画面上部の閉じられるバナーに変更
- ホストのマウントが消えると、ワーカーが古いルートを整理します
スキャナーの精度修正
v1.0.1 · 2026/05/23- インストール済みバージョンが実際には脆弱な範囲にない検出結果を除外
- 送信履歴のある通知先を削除できるように
初のオープンソースリリース
v1.0.0 · 2026/05/23- Sentinello の最初の一般公開リリース
ロードマップ
Sentinello は今、あなたの Node.js 依存関係を見守っています。これからの方向性と、あなたがリクエストできることを紹介します。
よりスマートな優先順位付け
予定悪用可能性と脆弱なコードが実際に到達可能かで検出結果をランク付けし、重要なものから対応します。
より多くのエコシステム
予定同じファイルシステムネイティブの検出で、スキャンを Node を超えて Python、Go、Rust に拡張します。
より多くの連携
予定通知チャンネルを増やし、チームがすでに使っているツールと Sentinello をつなぐ方法を広げます。
静的解析(SAST)
予定依存関係の既知の CVE だけでなく、あなた自身のソースコードの危険なパターンも検出します。
シークレットとライセンスのスキャン
予定コミットされたシークレットやライセンスの問題を、同じポートフォリオの同じキューで検出します。
次に連携・スキャンしてほしいものを教えてください — GitHub で Issue を立てて、ロードマップづくりに参加しましょう。