
Sirius 是一款开源漏洞扫描器,具备自动发现、基于 CVE 的检测以及现代化的 Web 界面。克隆仓库、配置 agent TLS 证书,即可开始扫描。
在启动整套服务之前,请按照 Agent gRPC TLS 配置 中的说明准备 agent 服务器证书和密钥。安装程序不会创建它们。
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
打开 http://localhost:3000 并登录:
| 邮箱 | [email protected] |
| 密码 | 由安装程序打印(在输出中查找 INITIAL_ADMIN_PASSWORD) |
一旦所需配置就绪,全部六个服务会自动启动。安装程序在首次运行时生成应用密钥,并且可以安全地重复运行。
默认情况下,安装程序不设置 IMAGE_TAG,因此 Compose 会从 GHCR 拉取 latest。若要固定某个发布版本(例如在 .env 中指定 v1.0.0),请仅在该标签已存在于全部六个容器镜像之后再执行;请从未登录 ghcr.io 的 shell 中运行 bash scripts/verify-ghcr-public-access.sh v1.0.0 进行验证。
要求: Docker Engine 20.10+ 及 Compose V2,4 GB 内存,10 GB 磁盘。支持 Linux、macOS 和 Windows(WSL2)。
X-API-Key 认证)安装程序步骤始终相同。只有 docker compose up 命令会变化。
| 模式 | 命令 | 使用场景 |
|---|---|---|
| 标准 | docker compose up -d | 大多数用户 -- 从 GHCR 拉取完整的发布栈 |
| 开发 | docker compose -f docker-compose.yaml -f docker-compose.dev.yaml up -d | 用于本地代码工作的实时重载 |
| 源码构建 | docker compose -f docker-compose.yaml -f docker-compose.build.yaml up -d --build | 显式的本地全栈构建 |
| 生产 | docker compose -f docker-compose.yaml -f docker-compose.prod.yaml up -d | 加固设置,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
预期服务: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
| 服务 | 技术 | 端口 | 用途 |
|---|---|---|---|
| sirius-ui | Next.js 14、React、Tailwind | 3000 | Web 界面 |
| sirius-api | Go、Gin | 9001 | REST API 与业务逻辑 |
| sirius-engine | Go + 嵌入式 gRPC 代理 | 5174、50051 | 扫描器、终端、代理服务 |
| sirius-postgres | PostgreSQL 15 | 5432 | 漏洞与扫描数据 |
| sirius-rabbitmq | RabbitMQ | 5672、15672 | 服务间消息传递 |
| sirius-valkey | Valkey(兼容 Redis) | 6379 | 缓存与会话数据 |
| 仪表板 | 扫描器 | 漏洞导航器 |
|---|---|---|
![]() | ![]() | ![]() |
| 环境 | 主机详情 | 终端 |
|---|---|---|
![]() | ![]() | ![]() |
Sirius 在端口 9001 上暴露 REST 端点,由内部服务 API 密钥保护。优先使用 Docker 密钥文件(SIRIUS_API_KEY_FILE,默认 /run/secrets/sirius_api_key);SIRIUS_API_KEY 仍作为受支持的环境变量回退方案。安装程序会写入 ./secrets/sirius_api_key.txt(权限模式为 0644,以便非 root 应用 UID 能够读取绑定挂载的密钥),并对两者进行配置。
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"
完整 API 文档:REST API 参考
对于生产环境部署:
--force 运行安装程序以重新生成所有凭据docker compose pull && docker compose up -d常见问题的快速修复方法:
| 问题 | 修复方法 |
|---|---|
| 服务无法启动 | 使用 docker compose logs <service> 查找错误 |
| Dev overlay 缺少基础设施 | 同时使用两个文件:-f docker-compose.yaml -f docker-compose.dev.yaml |
| 端口冲突 | 使用 lsof -i :3000 查找冲突进程 |
| 数据库连接错误 | docker exec sirius-postgres pg_isready |
| 重置后密钥过期 | 重新运行安装程序,然后执行 docker compose up -d --force-recreate |
有关详细的操作手册、验证流程和紧急恢复,请参阅 运维与故障排查。
有关开发环境搭建、编码规范和 PR 指南,请参阅 CONTRIBUTING.md。
快速链接: Issues | Discussions | Discord