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

Sirius — это сканер уязвимостей с открытым исходным кодом, автоматическим обнаружением, поиском по CVE и современным веб-интерфейсом. Клонируйте, выполните четыре команды и начинайте сканирование.
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 -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 # все 6 сервисов должны быть "healthy" или "running"
curl http://localhost:3000 # UI отвечает
curl http://localhost:9001/health # API отвечает
Ожидаемые сервисы: sirius-ui (3000), sirius-api (9001), sirius-engine (5174, 50051), sirius-postgres (5432), sirius-rabbitmq (5672, 15672), sirius-valkey (6379).
graph TD
subgraph clients [Клиенты]
UI["Sirius UI (Next.js)"]
CLI["Терминал и среда агента"]
end
subgraph core [Основные сервисы]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Инфраструктура]
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 предоставляет REST-эндпоинты на порту 9001, защищённые внутренним API-ключом сервиса. Предпочтительно использовать файл Docker secret (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 Reference
Для продуктивного развёртывания:
--force для перегенерации всех учётных данныхdocker compose pull && docker compose up -dБыстрые решения распространённых проблем:
Подробные операционные руководства, процедуры проверки и аварийного восстановления см. в Operations & Troubleshooting.
См. CONTRIBUTING.md для настройки среды разработки, стандартов оформления кода и правил создания PR.
Быстрые ссылки: Issues | Discussions | Discord
| Режим | Команда | Сценарий использования |
|---|
| Стандартный | 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 |
| Сервис | Технология | Порты | Назначение |
|---|
| 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 | Кэш и данные сессий |
| Проблема | Решение |
|---|
| Сервисы не запускаются | docker compose logs <service> чтобы найти ошибку |
| Отсутствует инфраструктура при dev-оверлее | Используйте оба файла: -f docker-compose.yaml -f docker-compose.dev.yaml |
| Конфликт портов | lsof -i :3000 чтобы найти конфликтующий процесс |
| Ошибка подключения к БД | docker exec sirius-postgres pg_isready |
| Устаревшие секреты после сброса | Перезапустите установщик, затем docker compose up -d --force-recreate |