Бесплатно · один сервер · без регистрации
Узнайте, какие стеки требуют внимания
Одна команда, обезличенный JSON или lock-файл проекта — рейтинг, вердикт и сводка рисков по стекам.
Проверяем
- Ubuntu
- Debian
- Alpine
- RHEL
- Rocky Linux
- AlmaLinux
- openSUSE / SUSE
- Docker
- Kubernetes
- PHP
- Composer
- Python
- Node.js
- nginx
- Apache
- MySQL
- MariaDB
- PostgreSQL
- Redis
Скоро
- Windows Server
- Java / Maven
- Go
- Ruby
- .NET
- Rust
Запустите на своём сервере
curl -fsSL https://ru.patchfirst.dev/check.sh | shPython не обязателен. Нужны curl и sh; при Python 3.8+ с cryptography используется zipapp, иначе на Linux x86_64 — бинарник. Для бинарника сверяется SHA-256 с того же HTTPS-сервиса: это проверка целостности, не независимая подпись. Команда запускается без root.
Посмотреть данные до отправки
Обычная проверка запускается одной командой выше. В любом способе запуска флаг --json показывает обезличенный JSON без отправки:
curl -fsSL https://ru.patchfirst.dev/check.sh | sh -s -- --jsonИли загрузите zipapp и запустите вручную с Python 3.8+. Тот же флаг покажет данные:
curl -fsSLo patchfirst.pyz https://ru.patchfirst.dev/agent/patchfirst.pyz &&
python3 patchfirst.pyz check --json --api https://ru.patchfirst.devПосле просмотра JSON отправьте данные и получите ссылку на отчёт:
python3 patchfirst.pyz check --api https://ru.patchfirst.devПроверить другой сервер через SSH
Готовые бинарники доступны только для Linux x86_64 (для Alpine — вариант musl). Скачайте подходящий вариант по инструкции «Бинарник без Python». На целевом Linux-сервере нужен только sh; обезличивание выполняется на вашей машине.
TMPDIR="$HOME" ./patchfirst check --ssh user@host --ssh-opt StrictHostKeyChecking=accept-new --api https://ru.patchfirst.devНа macOS и других системах используйте .pyz: нужны Python 3.8+ и SSH-клиент. Загрузите скрипт и запустите проверку:
curl --retry 3 -fsSLo patchfirst.pyz https://ru.patchfirst.dev/agent/patchfirst.pyz &&
python3 patchfirst.pyz check --ssh user@host --ssh-opt StrictHostKeyChecking=accept-new --api https://ru.patchfirst.devStrictHostKeyChecking=accept-new сохраняет ключ при первом соединении и отклоняет изменившийся ключ. Проверьте отпечаток сервера отдельно до первого подключения.
Посмотрите JSON и отправьте его сами
Скачайте zipapp и получите JSON через Python 3.8+. Если Python нет, используйте вариант бинарника ниже.
curl -fsSLo patchfirst.pyz https://ru.patchfirst.dev/agent/patchfirst.pyzpython3 patchfirst.pyz check --json --api https://ru.patchfirst.devБинарник без Python
Linux x86_64: загрузите бинарник и сверьте SHA-256 перед запуском. Сумма загружается с того же HTTPS-сервиса и не заменяет независимую подпись. Для Alpine замените имя patchfirst-linux-x86_64 во всех командах на patchfirst-linux-x86_64-musl. Для aarch64 пока нужен Python 3.8+ или запуск с другой машины через --ssh.
curl -fsSLo patchfirst https://ru.patchfirst.dev/agent/patchfirst-linux-x86_64
curl -fsSLo SHA256SUMS https://ru.patchfirst.dev/agent/SHA256SUMS
expected=$(awk '$2 == "patchfirst-linux-x86_64" {print $1}' SHA256SUMS)
printf '%s patchfirst\n' "$expected" | sha256sum -c - &&
chmod 700 patchfirst && TMPDIR="$HOME" ./patchfirst check --json --api https://ru.patchfirst.devСкопируйте только обезличенный JSON из стандартного вывода. Имена серверов не отправляются.
Проверьте lock-файл проекта
Выберите или перетащите lock-файлы: браузер разберёт их сам и покажет, что уйдёт на проверку. Запускать что-либо на сервере не нужно.
Подключите постоянный мониторинг
Все находки, версии исправлений и рекомендации. От 450 ₽/мес за сервер.
Отчёт доступен 7 дней. Ссылка содержит ключи: любой, у кого она есть, сможет открыть отчёт.