打开 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 RAM,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 # 所有 6 个服务应显示 "healthy" 或 "running"
curl http://localhost:3000 # UI 响应
curl http://localhost:9001/health # API 响应
预期服务:sirius-ui(3000)、sirius-api(9001)、sirius-engine(5174, 50051)、sirius-postgres(5432)、sirius-rabbitmq(5672, 15672)、sirius-valkey(6379)。
graph TD
subgraph clients [客户端]
UI["Sirius UI (Next.js)"]
CLI["终端和代理运行时"]
end
subgraph core [核心服务]
API["Sirius API (Go/Gin)"]
Engine["Sirius Engine"]
end
subgraph infra [基础设施]
MQ["RabbitMQ"]
DB["PostgreSQL"]
Cache["Valkey"]
end
UI -->|"HTTP/WebSocket"| API
CLI -->|"gRPC"| Engine
API -->|"AMQP 发布"| MQ
MQ -->|"队列消费"| Engine
API -->|"SQL 读写"| DB
Engine -->|"SQL 读写"| DB
API -->|"会话/缓存操作"| Cache
Engine -->|"扫描状态缓存操作"| 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> 查找错误 |
| 开发叠加缺少基础设施 | 同时使用两个文件:-f docker-compose.yaml -f docker-compose.dev.yaml |
| 端口冲突 | lsof -i :3000 查找冲突进程 |
| 数据库连接错误 | docker exec sirius-postgres pg_isready |
| 重置后密钥过时 | 重新运行安装程序,然后执行 docker compose up -d --force-recreate |
详细的运维流程手册、验证流程和紧急恢复,请参阅 运维与故障排查。
参见 CONTRIBUTING.md 了解开发环境搭建、编码规范和 PR 指南。
快速链接: Issues | Discussions | Discord