
Scanner de vulnérabilités open source avec découverte réseau automatisée, détection basée sur les CVE, score CVSS, tableaux de bord des risques, agents distants via gRPC et une interface web moderne pour les équipes de sécurité des entreprises.

Sirius est un scanner de vulnérabilités open source doté d'une découverte automatisée, d'une détection basée sur les CVE et d'une interface web moderne. Clonez le dépôt, configurez le certificat TLS de l'agent, puis lancez l'analyse.
Avant de démarrer la pile, provisionnez le certificat et la clé du serveur d'agent comme décrit dans Configuration TLS gRPC de l'agent. L'installateur ne les crée pas.
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
Ouvrez http://localhost:3000 et connectez-vous :
[email protected] | |
| Mot de passe | affiché par l'installateur (recherchez INITIAL_ADMIN_PASSWORD dans la sortie) |
Les six services démarrent automatiquement dès que leur configuration requise est présente. L'installateur génère les secrets applicatifs au premier lancement et peut être relancé sans risque.
Par défaut, l'installateur laisse IMAGE_TAG non défini, de sorte que Compose récupère latest depuis GHCR. Pour épingler une version (par exemple v1.0.0 dans .env), ne le faites qu'après l'existence de ce tag pour les six images de conteneurs ; vérifiez avec bash scripts/verify-ghcr-public-access.sh v1.0.0 depuis un shell non connecté à ghcr.io.
Prérequis : Docker Engine 20.10+ avec Compose V2, 4 Go de RAM, 10 Go de disque. Fonctionne sous Linux, macOS et Windows (WSL2).
X-API-Key sur le port 9001)L'étape d'installation est toujours la même. Seule la commande docker compose up change.
| Mode | Commande | Cas d'usage |
|---|---|---|
| Standard | docker compose up -d | La plupart des utilisateurs -- récupère la pile de release complète depuis GHCR |
| Développement | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Rechargement à chaud pour le travail sur le code local |
| Build depuis les sources | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Builds locaux explicites de la pile complète |
| Production | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Paramètres renforcés, 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
Services attendus : 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
| Service | Technologie | Ports | Objectif |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Interface web |
| sirius-api | Go, Gin | 9001 | API REST et logique métier |
| sirius-engine | Go + agent gRPC intégré | 5174, 50051 | Scanner, terminal, services d'agent |
| sirius-postgres | PostgreSQL 15 | 5432 | Données de vulnérabilités et de scans |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Messagerie inter-services |
| sirius-valkey | Valkey (compatible Redis) | 6379 | Données de cache et de session |
| Tableau de bord | Scanner | Navigateur de vulnérabilités |
|---|---|---|
![]() | ![]() | ![]() |
| Environnement | Détails de l'hôte | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
Sirius expose des points de terminaison REST sur le port 9001, protégés par la clé API du service interne. Préférez le fichier secret Docker (SIRIUS_API_KEY_FILE, par défaut /run/secrets/sirius_api_key) ; SIRIUS_API_KEY reste une variable d'environnement de secours prise en charge. L'installateur écrit ./secrets/sirius_api_key.txt (mode 0644 afin que les UID d'application non-root puissent lire le secret monté par bind) et configure les deux.
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"
Documentation complète de l'API : REST API Reference
Pour les déploiements en production :