SentinelloSentinello

Система раннего предупреждения для зависимостей, за которыми вы перестали следить.

В эпоху ИИ вы выпускаете больше проектов Node.js, чем способны поддерживать. Sentinello следит за каждым из них и выявляет известные CVE в их npm-зависимостях — чтобы забытый проект никогда не превратился в инцидент.

Запустите одной командой:

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 и один файл SQLite — ваш код и результаты никогда не покидают вашу машину.

Как это работает

Три шага. Никаких агентов для установки в ваши проекты, никаких аккаунтов.

Укажите ему свой код

Смонтируйте репозитории в /roots или добавьте их в «Настройки → Roots». Каждый каталог автоматически регистрируется и обнаруживается при запуске.

Непрерывное сканирование

Фоновый процесс по расписанию сверяет ваши зависимости с известными CVE, устанавливая нужную версию Node, которую фиксирует каждый проект, когда это требуется.

Триаж в одной очереди

Каждая находка из каждого проекта попадает в единую очередь, которую можно фильтровать по серьёзности, — с опциональными оповещениями в Slack, Telegram или вебхук.

Возможности

Всё в одном самостоятельно размещаемом портале — никаких внешних сервисов, данные не покидают вашу сеть.

Единая очередь триажа

Просматривайте и сортируйте CVE всего портфеля в одном месте — вместо npm audit, разбросанного по десятку чекаутов.

Просмотр по проектам

Откройте любой репозиторий, чтобы увидеть его текущие находки, версии с исправлением, историю сканирований и заглушения.

Просмотр по библиотекам

Переключитесь на уязвимый пакет и посмотрите каждый затронутый проект — затем заглушите его сразу везде.

Непрерывное сканирование

Фоновый процесс пересканирует по расписанию, поэтому новые рекомендации появляются без того, чтобы вы помнили о проверке.

Фильтрация по серьёзности

Сортируйте и фильтруйте находки по серьёзности, чтобы сначала разобраться с критичными, а с шумом — потом.

Уведомления

Получайте оповещения о сбоях и находках через Slack, Telegram или обычный вебхук — на выбранном вами языке.

Экспорт рекомендаций

Экспортируйте находки проекта или библиотеки в Markdown с настраиваемой подсказкой для устранения — для вашей команды или LLM.

Один образ, один файл

Один образ Docker и один файл SQLite. Никакого сервера баз данных, очереди сообщений или зависимости от облака.

Автоматически регистрируемые roots

Всё, что смонтировано в /roots, регистрируется и сканируется при запуске — имя каталога становится его меткой.

Node для каждого проекта

Учитывает .nvmrc каждого проекта, устанавливая и кэшируя зафиксированную версию Node один раз.

10 языков

Интерфейс портала, коды причин сканирования и статусы локализованы на 10 языков.

Уведомления и вебхуки

Узнавайте в тот же момент, когда в проекте появляется уязвимость — и запускайте собственную автоматизацию для её исправления.

Slack

Публикуйте находки в любой канал через incoming webhook, с нативным выделением и списками.

Telegram

Отправляйте оповещения в чат или группу через бота — с корректным форматированием, а не сырой разметкой.

Вебхук

Делайте POST на любой эндпоинт, чтобы направлять оповещения туда, где уже работает ваша команда.

Два формата вебхука

Выберите payload под то, что вы создаёте.

Структурированный JSON

Корень, проект и список уязвимостей — каждая с библиотекой, версией, рекомендуемой версией и уведомлением. Готово для агента авто-исправления.

Текстовое уведомление

Тот же экспорт уведомлений, что и в портале, в виде текста — передайте его прямо в LLM для разбора и исправления.

По корню или проекту

Отправляйте всё в одно место или подключите конкретный корень — или отдельный проект — к собственному каналу или вебхуку.

Скриншоты

Посмотрите в действии — портал сканирует несколько демонстрационных проектов. Нажмите на любой снимок, чтобы увеличить.

Самостоятельный хостинг

Разверните у себя за минуты. Скопируйте, вставьте, откройте 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 можно добавить и через портал.

Зачем мы это создали

В эпоху ИИ вы выпускаете больше, чем способны поддерживать.

Сегодня один разработчик за год запускает, сдаёт и оставляет позади десяток проектов. Маркетинговый сайт, клиентская панель, пет-проект, тихо ушедший в продакшн, — они продолжают работать ещё долго после того, как кто-то в последний раз на них взглянул.

Достаточно одной забытой зависимости с критической уязвимостью удалённого выполнения кода. Самый простой сайт может стать точкой входа.

Sentinello — это система раннего предупреждения для такого длинного хвоста. Он следит за каждым указанным проектом, поэтому новый CVE в чём-то, что вы выпустили месяцы назад, появляется в одном месте — прежде чем превратится в катастрофу.

Дорожная карта

Сегодня Sentinello следит за вашими зависимостями Node.js. Вот куда он движется — и что вы можете запросить.

Больше источников уязвимостей

Запланировано

Помимо базы рекомендаций npm — дополнительные источники вроде OSV, чтобы находки были шире и раньше.

Больше интеграций

Запланировано

Больше каналов уведомлений и способов подключить Sentinello к инструментам, которыми ваша команда уже пользуется.

Статический анализ (SAST)

Запланировано

Выявляйте рискованные паттерны в вашем собственном коде, а не только известные CVE в зависимостях.

Сканирование секретов и лицензий

Запланировано

Отмечайте закоммиченные секреты и проблемы с лицензиями в том же портфеле, в той же очереди.

Запросить интеграцию или источник

Расскажите, что бы вы интегрировали или просканировали дальше — откройте issue на GitHub и помогите сформировать дорожную карту.

Для кого это

Sentinello — для всех, у кого в продакшне больше, чем они способны охватить взглядом: для тех, кто разрабатывает в одиночку, для небольшой команды, для агентства, жонглирующего клиентскими проектами.

  • Вы выпускаете пет-проекты и клиентские сайты, которые должны оставаться безопасными ещё долго после запуска.
  • Вам нужен обзор всего портфеля без подключения CI к каждому репозиторию.
  • Вы предпочитаете размещать у себя, а не отдавать опись своего кода SaaS-сервису.

Если вы крупная организация, у которой Snyk или Dependabot уже встроены в зрелый конвейер, оставьте их — Sentinello не пытается заменить корпоративный SCA. Он здесь для остальной части вашего портфеля, за которой никто не следит. Он с открытым кодом и под лицензией MIT, так что вы можете в точности прочитать, что он делает.