
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, ejecuta cuatro comandos y empieza a escanear.
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
Abra http://localhost:3000 e inicie sesión:
| Correo electrónico | [email protected] |
| Contraseña | impresa por el instalador (busque INITIAL_ADMIN_PASSWORD en la salida) |
Eso es todo. Los seis servicios se inician automáticamente. El instalador genera secretos seguros en la primera ejecución y es seguro volver a ejecutarlo.
Por defecto, el instalador deja IMAGE_TAG sin establecer, por lo que Compose obtiene latest de GHCR. Para fijar una versión (por ejemplo v1.0.0 en .env), hágalo solo después de que esa etiqueta exista para todas las seis imágenes de contenedor; verifique con bash scripts/verify-ghcr-public-access.sh v1.0.0 desde un 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 siempre es el mismo. Solo cambia el comando 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 # los 6 servicios deberían mostrar "healthy" o "running"
curl http://localhost:3000 # la UI responde
curl http://localhost:9001/health # la API responde
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 [Clientes]
UI["Sirius UI (Next.js)"]
CLI["Terminal y runtime de agente"]
end
subgraph core [Servicios principales]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [Infraestructura]
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
| Panel de control | Escáner | Navegador de vulnerabilidades |
|---|---|---|
![]() | ![]() | ![]() |
| Entorno | Detalles del host | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
Sirius expone endpoints REST en el puerto 9001, protegidos por la clave de API de servicio interno. Prefiera el archivo de 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 UIDs de aplicaciones no root puedan leer el secreto montado) y configura ambas.
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:
--force para regenerar todas las credencialesdocker compose pull && docker compose up -dSoluciones rápidas para problemas comunes:
Para manuales operativos detallados, procedimientos de verificación y recuperación de emergencia, consulte Operaciones y solución de problemas.
Consulte CONTRIBUTING.md para la configuración de desarrollo, estándares de codificación y directrices para PR.
Enlaces rápidos: Incidencias | Discusiones | Discord
| Modo | Comando | Caso de uso |
|---|
| Estándar | docker compose up -d | La mayoría de usuarios -- obtiene la pila completa de la versión desde GHCR |
| Desarrollo | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Recarga en vivo para trabajo local con código |
| Compilación desde fuente | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Compilaciones explícitas de la pila completa local |
| Producción | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Configuración reforzada, pull_policy: always |
| 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 embebido | 5174, 50051 | Servicios de escáner, terminal y 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 sesiones |
| Problema | Solución |
|---|
| Los servicios no arrancan | docker compose logs <servicio> para encontrar el error |
| La superposición de desarrollo carece de infraestructura | Use ambos archivos: -f docker-compose.yaml -f docker-compose.dev.yaml |
| Conflicto de puertos | lsof -i :3000 para encontrar el proceso conflictivo |
| Error de conexión a la base de datos | docker exec sirius-postgres pg_isready |
| Secretos obsoletos tras reinicio | Vuelva a ejecutar el instalador, luego docker compose up -d --force-recreate |