
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 avec découverte automatique, détection basée sur les CVE et une interface web moderne. Clonez, exécutez quatre commandes, commencez à scanner.
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 (cherchez INITIAL_ADMIN_PASSWORD dans la sortie) |
C'est tout. Les six services démarrent automatiquement. L'installateur génère des secrets sécurisés lors du premier lancement et peut être relancé sans risque.
Par défaut, l'installateur ne définit pas IMAGE_TAG, donc Compose tire latest depuis GHCR. Pour épingler une version (par exemple v1.0.0 dans .env), ne le faites qu'après que ce tag existe pour les six images conteneur ; vérifiez avec bash scripts/verify-ghcr-public-access.sh v1.0.0 depuis un shell qui n'est pas connecté à ghcr.io.
Prérequis : Docker Engine 20.10+ avec Compose V2, 4 Go de RAM, 10 Go de disque. Fonctionne sur Linux, macOS et Windows (WSL2).
X-API-Key sur le port 9001)L'étape de l'installateur est toujours la même. Seule la commande docker compose up change.
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 # les 6 services doivent afficher "healthy" ou "running"
curl http://localhost:3000 # l'interface répond
curl http://localhost:9001/health # l'API répond
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
| 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 de 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 repli prise en charge. L'installateur écrit ./secrets/sirius_api_key.txt (mode 0644 pour que les UID d'applications non-root puissent lire le secret monté en 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 : Référence API REST
Pour les déploiements en production :
--force pour regénérer tous les identifiantsdocker compose pull && docker compose up -dSolutions rapides pour les problèmes courants :
Pour les manuels opérationnels détaillés, les procédures de vérification et la récupération d'urgence, voir Opérations & Dépannage.
Voir CONTRIBUTING.md pour la configuration de développement, les normes de codage et les directives pour les PR.
Liens rapides : Problèmes | Discussions | Discord
| Mode | Commande | Cas d'usage |
|---|
| Standard | docker compose up -d | La plupart des utilisateurs — tire la stack complète depuis GHCR |
| Développement | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Rechargement à chaud pour le code local |
| Build source | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Builds explicites de toute la stack en local |
| Production | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Paramètres durcis, pull_policy: always |
| 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 | Scan, terminal, services d'agents |
| 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 | Cache et données de session |
| Problème | Solution |
|---|
| Les services ne démarrent pas | docker compose logs <service> pour trouver l'erreur |
| Calque de développement manquant dans l'infra | Utilisez les deux fichiers : -f docker-compose.yaml -f docker-compose.dev.yaml |
| Conflit de port | lsof -i :3000 pour trouver le processus conflictuel |
| Erreur de connexion à la base de données | docker exec sirius-postgres pg_isready |
| Secrets obsolètes après réinitialisation | Relancez l'installateur, puis docker compose up -d --force-recreate |