
Escáner de vulnerabilidades de código abierto con descubrimiento automatizado de redes, detección basada en CVE, puntuación CVSS, paneles de riesgo, agentes remotos vía gRPC y una interfaz web moderna para equipos de seguridad empresarial.

Sirius es un escáner de vulnerabilidades de código abierto con descubrimiento automatizado, detección basada en CVE y una interfaz web moderna. Clona el repositorio, configura el certificado TLS del agente y comienza a escanear.
Antes de iniciar la pila, aprovisiona el certificado y la clave del servidor del agente tal como se describe en Configuración de TLS para gRPC del agente. El instalador no los crea.
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
Abre http://localhost:3000 e inicia sesión:
[email protected] | |
| Contraseña | impresa por el instalador (busca INITIAL_ADMIN_PASSWORD en la salida) |
Los seis servicios se inician automáticamente una vez que su configuración requerida está presente. El instalador genera los secretos de la aplicación en la primera ejecución y es seguro volver a ejecutarlo.
Por defecto, el instalador deja IMAGE_TAG sin definir, por lo que Compose descarga latest desde GHCR. Para fijar una versión (por ejemplo v1.0.0 en .env), hazlo solo después de que esa etiqueta exista para las seis imágenes de contenedor; verifícalo con bash scripts/verify-ghcr-public-access.sh v1.0.0 desde una shell que no haya iniciado sesión en ghcr.io.
Requisitos: Docker Engine 20.10+ con Compose V2, 4 GB de RAM, 10 GB de disco. Funciona en Linux, macOS y Windows (WSL2).
X-API-Key en el puerto 9001)El paso del instalador es siempre el mismo. Solo cambia el comando docker compose up.
| Modo | Comando | Caso de uso |
|---|---|---|
| Estándar | docker compose up -d | La mayoría de los usuarios -- descarga el stack de release completo desde GHCR |
| Desarrollo | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Recarga en vivo para trabajo local con el código |
| Compilación desde código fuente | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Compilaciones locales explícitas de todo el stack |
| Producción | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Configuración reforzada, 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
Servicios esperados: 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
| Servicio | Tecnología | Puertos | Propósito |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Interfaz web |
| sirius-api | Go, Gin | 9001 | API REST y lógica de negocio |
| sirius-engine | Go + agente gRPC integrado | 5174, 50051 | Escáner, terminal, servicios de agente |
| sirius-postgres | PostgreSQL 15 | 5432 | Datos de vulnerabilidades y escaneos |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Mensajería entre servicios |
| sirius-valkey | Valkey (compatible con Redis) | 6379 | Datos de caché y sesión |
| Panel | Escáner | Navegador de vulnerabilidades |
|---|---|---|
![]() | ![]() | ![]() |
| Entorno | Detalles del host | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
Sirius expone endpoints REST en el puerto 9001, protegidos por la clave de API del servicio interno. Se prefiere el archivo secreto de Docker (SIRIUS_API_KEY_FILE, por defecto /run/secrets/sirius_api_key); SIRIUS_API_KEY sigue siendo una alternativa de variable de entorno compatible. El instalador escribe ./secrets/sirius_api_key.txt (modo 0644 para que los UID de aplicaciones no root puedan leer el secreto montado como bind) y configura ambos.
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"
Documentación completa de la API: Referencia de la API REST
Para despliegues en producción: