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

Sirius — это сканер уязвимостей с открытым исходным кодом, оснащённый автоматическим обнаружением, детектированием на основе CVE и современным веб-интерфейсом. Клонируйте репозиторий, настройте TLS-сертификат агента и начинайте сканирование.
Перед запуском стека подготовьте сертификат и ключ сервера агента, как описано в разделе Agent gRPC TLS configuration. Установщик их не создаёт.
git clone https://github.com/SiriusScan/Sirius.git
cd Sirius
docker compose -f docker-compose.installer.yaml run --rm sirius-installer
docker compose up -d
Откройте http://localhost:3000 и войдите в систему:
[email protected] | |
| Пароль | выводится установщиком (ищите INITIAL_ADMIN_PASSWORD в выводе) |
Все шесть сервисов запускаются автоматически, как только присутствует их необходимая конфигурация. Установщик генерирует секреты приложения при первом запуске, и его можно безопасно запускать повторно.
По умолчанию установщик оставляет IMAGE_TAG неустановленным, поэтому Compose загружает latest из GHCR. Чтобы закрепить релиз (например, v1.0.0 в .env), делайте это только после того, как этот тег существует для всех шести образов контейнеров; проверьте с помощью bash scripts/verify-ghcr-public-access.sh v1.0.0 из оболочки, которая не авторизована в ghcr.io.
Требования: Docker Engine 20.10+ с Compose V2, 4 ГБ ОЗУ, 10 ГБ диска. Работает на Linux, macOS и Windows (WSL2).
X-API-Key на порту 9001)Шаг установщика всегда одинаков. Меняется только команда docker compose up.
| Режим | Команда | Сценарий использования |
|---|---|---|
| Стандартный | docker compose up -d | Большинство пользователей -- загружает полный стек релиза из GHCR |
| Разработка | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Горячая перезагрузка для локальной работы с кодом |
| Сборка из исходников | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Явные локальные сборки полного стека |
| Продакшн | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Усиленные настройки, pull_policy: always |
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --non-interactive --no-print-secrets
docker compose up -d
docker compose -f docker-compose.installer.yaml run --rm sirius-installer --force
docker compose up -d --force-recreate
docker compose ps # all 6 services should show "healthy" or "running"
curl http://localhost:3000 # UI responds
curl http://localhost:9001/health # API responds
Ожидаемые сервисы: sirius-ui (3000), sirius-api (9001), sirius-engine (5174, 50051), sirius-postgres (5432), sirius-rabbitmq (5672, 15672), sirius-valkey (6379).
graph TD
subgraph clients [Clients]
UI["Sirius UI (Next.js)"]
CLI["Terminal and Agent Runtime"]
end
subgraph core [Core Services]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infrastructure]
MQ["RabbitMQ"]
DB["PostgreSQL"]
Cache["Valkey"]
end
UI -->|"HTTP/WebSocket"| API
CLI -->|"gRPC"| Engine
API -->|"AMQP publish"| MQ
MQ -->|"Queue consume"| Engine
API -->|"SQL read/write"| DB
Engine -->|"SQL read/write"| DB
API -->|"Session/cache ops"| Cache
Engine -->|"Scan state cache ops"| Cache
| Сервис | Технология | Порты | Назначение |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Веб-интерфейс |
| sirius-api | Go, Gin | 9001 | REST API и бизнес-логика |
| sirius-engine | Go + встроенный gRPC-агент | 5174, 50051 | Сканер, терминал, агентские сервисы |
| sirius-postgres | PostgreSQL 15 | 5432 | Данные об уязвимостях и сканированиях |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Межсервисный обмен сообщениями |
| sirius-valkey | Valkey (совместим с Redis) | 6379 | Кэш и данные сессий |
| Панель управления | Сканер | Навигатор уязвимостей |
|---|---|---|
![]() | ![]() | ![]() |
| Окружение | Сведения о хосте | Терминал |
|---|---|---|
![]() | ![]() | ![]() |
Sirius предоставляет REST-эндпоинты на порту 9001, защищённые внутренним ключом API сервиса. Предпочтительно использовать файл секрета Docker (SIRIUS_API_KEY_FILE, по умолчанию /run/secrets/sirius_api_key); SIRIUS_API_KEY остаётся поддерживаемым запасным вариантом через переменную окружения. Установщик записывает ./secrets/sirius_api_key.txt (режим 0644, чтобы непривилегированные UID приложений могли читать примонтированный секрет) и настраивает оба варианта.
curl http://localhost:9001/health -H "X-API-Key: $SIRIUS_API_KEY"
curl http://localhost:9001/api/v1/scan/get/all -H "X-API-Key: $SIRIUS_API_KEY"
Полная документация API: Справочник по REST API
Для производственных развёртываний:
--force, чтобы перегенерировать все учётные данныеdocker compose pull && docker compose up -d