
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 automatischer Erkennung, CVE-basierter Analyse und einer modernen Weboberfläche. Repository klonen, vier Befehle ausführen, mit dem Scannen beginnen.
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 | vom Installer ausgegeben (suchen Sie in der Ausgabe nach INITIAL_ADMIN_PASSWORD) |
Das war's. Alle sechs Dienste starten automatisch. Der Installer generiert beim ersten Start sichere Zugangsdaten und kann bedenkenlos erneut ausgeführt werden.
Standardmäßig setzt der Installer IMAGE_TAG nicht, sodass Compose latest von GHCR zieht. Um eine bestimmte Version festzulegen (z. B. v1.0.0 in .env), tun Sie dies nur, nachdem dieser Tag für alle sechs Container-Images vorhanden ist. Überprüfen Sie dies mit bash scripts/verify-ghcr-public-access.sh v1.0.0 in einer Shell, die nicht bei ghcr.io angemeldet ist.
Voraussetzungen: Docker Engine 20.10+ mit Compose V2, 4 GB RAM, 10 GB Festplattenspeicher. Funktioniert unter Linux, macOS und Windows (WSL2).
X-API-Key-Authentifizierung auf Port 9001)Der Installer-Schritt ist immer derselbe. Nur der docker compose up-Befehl ändert sich.
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 # alle 6 Dienste sollten "healthy" oder "running" anzeigen
curl http://localhost:3000 # UI antwortet
curl http://localhost:9001/health # API antwortet
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
| Dashboard | Scanner | Schwachstellennavigator |
|---|---|---|
![]() | ![]() | ![]() |
| Umgebung | Host-Details | Terminal |
|---|---|---|
![]() | ![]() | ![]() |
Sirius stellt REST-Endpunkte auf Port 9001 bereit, geschützt durch den internen Service-API-Key. Bevorzugen Sie die Docker Secret-Datei (SIRIUS_API_KEY_FILE, Standard /run/secrets/sirius_api_key); SIRIUS_API_KEY bleibt als unterstützte Umgebungsvariable für den Fallback erhalten. Der Installer schreibt ./secrets/sirius_api_key.txt (Modus 0644, sodass Nicht-Root-App-UIDs das bind-gemountete Secret lesen können) und konfiguriert beides.
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-Referenz
Für Produktionsbereitstellungen:
--force ausführen, um alle Berechtigungen neu zu generierendocker compose pull && docker compose up -dSchnellhilfen für häufige Probleme:
Ausführliche Betriebsrunbooks, Verifikationsverfahren und Notfallwiederherstellung finden Sie unter Betrieb & Fehlerbehebung.
Siehe CONTRIBUTING.md für Entwicklungseinrichtung, Codierungsstandards und PR-Richtlinien.
Schnelllinks: Issues | Diskussionen | Discord
| Modus | Befehl | Anwendungsfall |
|---|
| Standard | docker compose up -d | Für die meisten Benutzer – zieht den vollständigen Release-Stack aus GHCR |
| Entwicklung | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | Live-Neuladen für lokale Code-Arbeiten |
| 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 | Abgesicherte Einstellungen, pull_policy: always |
| Dienst | Technologie | Ports | Zweck |
|---|
| sirius-ui | Next.js 14, React, Tailwind | 3000 | Weboberfläche |
| sirius-api | Go, Gin | 9001 | REST-API und Geschäftslogik |
| sirius-engine | Go + eingebetteter gRPC-Agent | 5174, 50051 | Scanner-, Terminal- und Agentendienste |
| sirius-postgres | PostgreSQL 15 | 5432 | Schwachstellen- und Scandaten |
| sirius-rabbitmq | RabbitMQ | 5672, 15672 | Nachrichtenaustausch zwischen Diensten |
| sirius-valkey | Valkey (Redis-kompatibel) | 6379 | Cache- und Sitzungsdaten |
| Problem | Lösung |
|---|
| Dienste starten nicht | docker compose logs <dienst> zur Fehleranalyse |
| Dev-Overlay fehlt Infrastruktur | Beide Dateien verwenden: -f docker-compose.yaml -f docker-compose.dev.yaml |
| Portkonflikt | lsof -i :3000 suchen den konkurrierenden Prozess |
| Datenbankverbindungsfehler | docker exec sirius-postgres pg_isready |
| Veraltete Secrets nach Reset | Installer erneut ausführen, dann docker compose up -d --force-recreate |