
Open-Source-Schwachstellenscanner mit automatischer Netzwerkerkennung, CVE-basierter Erkennung, CVSS-Bewertung, Risiko-Dashboards, Remote-Agenten über gRPC und einer modernen Web-UI für Sicherheitsteams in Unternehmen.

Sirius ist ein Open-Source-Schwachstellenscanner mit automatisierter Erkennung, CVE-basierter Detektion und einer modernen Web-Oberfläche. Klonen Sie das Repository, konfigurieren Sie das TLS-Zertifikat des Agents und starten Sie mit dem Scannen.
Bevor Sie den Stack starten, stellen Sie das Serverzertifikat und den Schlüssel des Agents bereit, wie in Agent gRPC TLS configuration beschrieben. Der Installer erstellt diese nicht.
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
Öffnen Sie http://localhost:3000 und melden Sie sich an:
[email protected] | |
| Passwort | wird vom Installer ausgegeben (suchen Sie in der Ausgabe nach INITIAL_ADMIN_PASSWORD) |
Alle sechs Dienste starten automatisch, sobald ihre erforderliche Konfiguration vorhanden ist. Der Installer generiert beim ersten Lauf Anwendungsgeheimnisse und kann bedenkenlos erneut ausgeführt werden.
Standardmäßig lässt der Installer IMAGE_TAG ungesetzt, sodass Compose latest von GHCR zieht. Um eine Release-Version festzulegen (zum Beispiel v1.0.0 in .env), tun Sie dies erst, nachdem dieser Tag für alle sechs Container-Images existiert; überprüfen Sie dies mit bash scripts/verify-ghcr-public-access.sh v1.0.0 aus einer Shell, die nicht bei ghcr.io angemeldet ist.
Voraussetzungen: Docker Engine 20.10+ mit Compose V2, 4 GB RAM, 10 GB Speicherplatz. Funktioniert unter Linux, macOS und Windows (WSL2).
X-API-Key-Authentifizierung auf Port 9001)Der Installer-Schritt ist immer derselbe. Nur der Befehl docker compose up ändert sich.
| Modus | Befehl | Anwendungsfall |
|---|---|---|
| Standard | docker compose up -d | Die meisten Benutzer -- zieht den vollständigen Release-Stack von GHCR |
| Entwicklung | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Live-Reload für lokale Codearbeit |
| Quellcode-Build | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | Explizite lokale Full-Stack-Builds |
| Produktion | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | Gehärtete Einstellungen, 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
Erwartete Dienste: 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
| Dienst | Technologie | Ports | Zweck |
|---|---|---|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Web-Oberfläche |
| sirius-api | Go, Gin | 9001 | REST-API und Geschäftslogik |
| sirius-engine | Go + eingebetteter gRPC-Agent | 5174, 50051 | Scanner-, Terminal- und Agent-Dienste |
| sirius-postgres | PostgreSQL 15 | 5432 | Schwachstellen- und Scan-Daten |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Nachrichtenaustausch zwischen Diensten |
| sirius-valkey | Valkey (Redis-kompatibel) | 6379 | Cache- und Sitzungsdaten |
| Dashboard | Scanner | Vulnerability Navigator |
|---|---|---|
![]() | ![]() | ![]() |
| Umgebung | Host-Details | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
Sirius stellt REST-Endpunkte auf Port 9001 bereit, die durch den internen Dienst-API-Schlüssel geschützt sind. Bevorzugen Sie die Docker-Secret-Datei (SIRIUS_API_KEY_FILE, Standard /run/secrets/sirius_api_key); SIRIUS_API_KEY bleibt als unterstützter Umgebungsvariablen-Fallback erhalten. Das Installationsprogramm schreibt ./secrets/sirius_api_key.txt (Modus 0644, damit nicht-rootfähige App-UIDs das bind-gemountete Secret lesen können) und konfiguriert beide.
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"
Vollständige API-Dokumentation: REST API Reference
Für Produktionsumgebungen:
--force aus, um alle Anmeldedaten neu zu generierendocker compose pull && docker compose up -d