BenediktSchackenberg/octofleet
GitHub: BenediktSchackenberg/octofleet
一个开箱即用的跨平台端点管理解决方案,整合了资产清单、补丁编排、安全合规与远程运维功能。
Stars: 10 | Forks: 3
# 🐙 Octofleet
## 🚀 快速开始
### 选项 1: Docker (推荐)
```
git clone https://github.com/BenediktSchackenberg/octofleet.git
cd octofleet
docker compose up -d
```
打开 http://localhost:3000 — 登录:`admin` / `admin`
### 选项 2: 安装 Agent
**Windows (以管理员身份运行 PowerShell — 单行命令):**
```
irm https://github.com/BenediktSchackenberg/octofleet/releases/latest/download/Install-OctofleetAgent.ps1 | iex
```
然后配置 `C:\ProgramData\Octofleet\service-config.json`:
```
{
"InventoryApiUrl": "http://your-server:8080",
"InventoryApiKey": "your-api-key",
"GatewayUrl": "http://your-server:18789",
"GatewayToken": "your-gateway-token",
"DisplayName": "MY-SERVER",
"AutoPushInventory": true,
"ScheduledPushEnabled": true,
"ScheduledPushIntervalMinutes": 30
}
```
| 字段 | 描述 | 必填 |
|-------|-------------|----------|
| `InventoryApiUrl` | 后端 API URL (端口 8080) | **是** |
| `InventoryApiKey` | 用于认证的 API 密钥 | **是** |
| `GatewayUrl` | 用于远程访问的 Gateway URL (端口 18789) | 否 |
| `GatewayToken` | Gateway 认证令牌 | 否 |
| `DisplayName` | UI 中的节点显示名称 | 否 (默认为主机名) |
配置更改后重启服务:
```
Restart-Service OctofleetNodeAgent
```
**Linux:**
```
API_URL="http://your-server:8080" API_KEY="your-api-key" \
curl -sSL https://raw.githubusercontent.com/BenediktSchackenberg/octofleet/main/linux-agent/install.sh | sudo -E bash
```
然后配置 `/opt/octofleet-agent/config.env`:
```
API_URL="http://your-server:8080"
API_KEY="your-api-key"
```
📖 **[完整 Agent 设置指南 →](docs/AGENT-SETUP.md)** · **[安装 Wiki →](../../wiki/Installation)**
## 🏗️ 架构
```
┌─────────────────────────────────────────────────────────────┐
│ Frontend │
│ (Next.js + React) │
│ localhost:3000 │
└─────────────────────┬───────────────────────────────────────┘
│ REST API
┌─────────────────────▼───────────────────────────────────────┐
│ Backend │
│ (FastAPI + Python 3.12 — 22 Routers) │
│ 509 endpoints · localhost:8080 │
└─────────────────────┬───────────────────────────────────────┘
│ SQL
┌─────────────────────▼───────────────────────────────────────┐
│ Database │
│ (PostgreSQL 16 + TimescaleDB) │
│ localhost:5432 │
└─────────────────────────────────────────────────────────────┘
┌──────────┐ ┌──────────┐ ┌──────────┐
│ Windows │ │ Windows │ │ Linux │
│ Agent │ │ Agent │ │ Agent │
│ (.NET 8) │ │ (.NET 8) │ │ (Bash) │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
└─────────────┴─────────────┘
HTTPS to Backend
```
## 📚 文档
| 主题 | 链接 |
|-------|------|
| 快速开始 | [docs/GETTING-STARTED.md](docs/GETTING-STARTED.md) |
| 架构 | [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) |
| 配置 | [docs/CONFIGURATION.md](docs/CONFIGURATION.md) |
| **API 参考** | [docs/API-REFERENCE.md](docs/API-REFERENCE.md) • [Swagger UI](http://localhost:8080/docs) |
| 安全中心 | [docs/SECURITY-CENTER.md](docs/SECURITY-CENTER.md) |
| 补丁管理 | [docs/PATCH-MANAGEMENT.md](docs/PATCH-MANAGEMENT.md) |
| 内容生命周期 | [docs/CONTENT-LIFECYCLE.md](docs/CONTENT-LIFECYCLE.md) |
| 查询引擎 | [docs/QUERY-ENGINE.md](docs/QUERY-ENGINE.md) |
| 软件计量 | [docs/SOFTWARE-METERING.md](docs/SOFTWARE-METERING.md) |
| Agent 设置 | [docs/AGENT-SETUP.md](docs/AGENT-SETUP.md) |
| 路线图 | [docs/ROADMAP-ENTERPRISE.md](docs/ROADMAP-ENTERPRISE.md) |
### 🔌 API 端点 (约 450 个)
后端通过自动 OpenAPI 文档公开完整的 REST API:
```
# 交互式 API 文档 (Swagger UI)
open http://localhost:8080/docs
# 替代方案:ReDoc
open http://localhost:8080/redoc
# OpenAPI JSON 规范
curl http://localhost:8080/openapi.json
```
**主要端点组:**
| 分类 | 端点数 | 描述 |
|----------|-----------|-------------|
| `/api/v1/nodes` | 15 | 节点清单、搜索、树状视图 |
| `/api/v1/inventory/*` | 17 | 硬件、软件、修补程序、安全 |
| `/api/v1/jobs` | 10 | 任务创建、调度、结果 |
| `/api/v1/packages` | 12 | 包管理、winget/choco |
| `/api/v1/vulnerabilities` | 6 | CVE 跟踪、抑制 |
| `/api/v1/remediation` | 23 | 自动修复、健康检查 |
| `/api/v1/services` | 10 | 服务编排 |
| `/api/v1/deployments` | 8 | 软件部署 |
| `/api/v1/patches` | 20 | 补丁目录、环、部署、合规 |
| `/api/v1/baselines` | ~25 | 配置基线、规则、评估、偏移、模板、修复 |
| `/api/v1/content` | 22 | 内容仓库、项目、快照、环境、晋升 |
| `/api/v1/query` | 4 | 查询引擎 (执行、模式、模板、实时) |
| `/api/v1/metering` | ~20 | 软件目录、许可证、合规、回收 |
| `/api/v1/hardware` | 2 | 硬件设备群聚合与导出 |
| `/api/v1/security/*` | 34 | 安全监控、事件、发现、证据、审计 |
## 🛠️ 开发
```
# 后端 (FastAPI)
cd backend && python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8080
# 前端 (Next.js)
cd frontend && npm install && npm run dev
# Windows Agent (.NET 8)
cd src/OctofleetAgent.Service && dotnet run
# 运行测试
cd tests/api && pytest
cd tests/e2e && npx playwright test
```
## ⚙️ 配置
### 环境变量
| 变量 | 默认值 | 描述 |
|----------|---------|-------------|
| `API_KEY` | `octofleet-inventory-dev-key` | 用于 Agent 认证的 API 密钥 |
| `DATABASE_URL` | `postgresql://octofleet:...@127.0.0.1:5432/inventory` | PostgreSQL 连接字符串 |
| `JWT_SECRET` | 自动生成 | JWT 令牌密钥 (持久化) |
| `NVD_API_KEY` | None | 用于漏洞扫描的 NVD API 密钥 |
| `OCTOFLEET_GATEWAY_URL` | `http://192.168.0.5:18789` | Octofleet Gateway URL |
| `OCTOFLEET_GATEWAY_TOKEN` | 空 | Gateway 认证令牌 |
📖 **[完整配置参考 →](docs/CONFIGURATION.md)**
## 🗺️ 路线图
请参阅 [企业路线图](docs/ROADMAP-ENTERPRISE.md) 和 [公开路线图](../../wiki/Roadmap) 了解计划功能。
### ✅ v0.6.0 已完成
- E30 补丁与更新编排
- E31 配置基线与偏移管理
- E33 内容仓库与生命周期管理
- E34 实时查询引擎
- E38 软件计量与许可证跟踪
### 🔜 即将推出
- macOS Agent
- LDAP/Active Directory & SSO/OIDC 集成
- Ansible/DSC 集成
- 云提供商集成 (Azure, AWS, Proxmox)
- 多租户
- 高可用性
[完整路线图 →](docs/ROADMAP-ENTERPRISE.md)
## 📄 许可证
MIT 许可证 — 详情见 [LICENSE](LICENSE)。
## 🙏 致谢
基于 [FastAPI](https://fastapi.tiangolo.com/), [Next.js](https://nextjs.org/), [.NET 8](https://dotnet.microsoft.com/), [TimescaleDB](https://www.timescale.com/) 构建
漏洞数据来自 [NVD](https://nvd.nist.gov/) • 图标由 [Lucide](https://lucide.dev/) 提供
开源端点管理平台
通过单一仪表板监控您的设备群、部署软件、跟踪漏洞、管理补丁以及控制设备。
| ### 📊 资产清单与监控 - 带热点矩阵的实时设备群仪表板 - 硬件清单 (CPU, RAM, 磁盘, 网络) - **硬件设备群仪表板** — CPU/磁盘/存储聚合、磁盘健康监控、物理磁盘清单 - 带版本跟踪的软件清单 - 带热力图可视化的性能监控 - 进程和网络监控 - 全设备群趋势迷你图 | ### 🚀 部署与任务 - 远程任务执行 - 带跟踪的包管理 - 推出策略 (金丝雀, 分阶段) - 维护窗口 - 服务编排 |
| ### 🔐 安全与合规 - **安全中心**,包含监控、发现和取证专用页面 - 漏洞扫描 (NVD/CVE) + 全设备群聚合 - 自动修复 - **文件审计** — 实时监控 (Windows + Linux) - **行为规则** — 阈值、模式与基于时间的检测 - **发现与风险评分** — 自动生成,按严重性加权 - **配置态势快照** — 基线偏移检测 - **活动仪表板** — 文件与用户活动,非工作时间警报 - **证据导出** & 保留 / 法定保留 - 基于角色的访问控制 (RBAC) + UI 审计日志 | ### 🩹 补丁与更新编排 — v0.6.0 新增! - **补丁目录** — 集中式 KB/更新注册表 - **补丁环** — 金丝雀 → 试点 → 广泛推出策略 - **部署向导** — 创建、调度、暂停、恢复、取消 - **合规性跟踪** — 单节点及全设备群 - **Agent 端扫描器** — `PatchScanner.cs` 发现缺失的 Windows 更新 |
| ### 📐 配置基线 — v0.6.0 新增! - **CIS 基准模板** (Win Server 2022/2025, Win 11) - **基线规则** — 注册表、服务、安全策略检查 - **偏移检测** — 自动评估并生成偏移事件 - **自动修复** — 自动修正偏移的设置 - **合规仪表板**,带趋势图 | ### 📦 内容生命周期 — v0.6.0 新增! - **仓库管理** — APT, YUM, Chocolatey, NuGet, WinGet, Generic - **内容快照** — 冻结某一时间点的仓库状态 - **环境流水线** — 开发 → 测试 → 生产推进 - **晋升与回滚** — 推进或还原环境 - **快照差异对比** — 比较任意两个快照 |
| ### 🔍 实时查询引擎 — v0.6.0 新增! - **DSL 转 SQL 查询构建器**,带可视化 WHERE 子句构建器 - **22 个可查询表**,覆盖设备群、软件、安全、指标、事件 - **18 个预置模板**,用于常见设备群问题 - **实时 Agent 查询** — 进程、服务、开放端口实时查询 - **CSV 导出**,用于外部分析 | ### 📊 软件计量与许可 — v0.6.0 新增! - **软件目录**,自动从设备群清单中发现 - **许可合规** — 按设备、按用户、站点、企业 - **规范化规则** — 将名称变体映射到目录条目 - **使用量跟踪** & 回收候选 - **核对报告**,用于许可调整 |
| ### 🖥️ 远程访问与用户体验 - **屏幕镜像 (实时查看)** - 浏览器中的远程终端 - **Agent 活动监视器** — 实时 SSE 源 - **命令面板 (Ctrl+K)** — 即时节点搜索与导航 - **超级下拉导航** — 2 列安全与合规超级菜单 - **深色模式** — 所有页面全面支持深色模式 - Discord 警报通知 | ### 🔌 零接触供应 - **PXE 启动** — 无需 USB/ISO - **WinPE 部署** — 全自动 - **VirtIO 支持** — KVM/QEMU 就绪 - **多 VLAN** — Tentacle 中继架构 - **驱动注入** — 自动硬件检测 - **Linux PXE** — 通过 NFS 安装 Ubuntu 22.04/24.04 |
| ### 🗄️ SQL Server 管理 - 自动化 SQL Server 安装 - 自动磁盘准备 - 版本支持:SQL Server 2025/2022/2019 - 累积更新部署与合规 | ### 🔄 自更新 Agent - Windows Agent 从 GitHub Releases 自动更新 - SHA256 验证 & 降级保护 - 零接触部署 - 用于批量推出的注册令牌 |
| ### 📊 报告与导出 - **PDF 报告** — 设备群摘要、安全、清单 - **Excel/CSV/JSON 导出** — 针对所有数据类型 - **日期范围过滤** — 7d/30d/90d 预设 - 报告生成器页面 (`/reports`) | ### 🏗️ 硬件设备群仪表板 - CPU、磁盘和存储设备群聚合 - 磁盘健康监控 (SMART) - 跨所有节点的物理磁盘清单 - 硬件导出 |
🐙 触达您设备群中的每一个端点
⭐ 在 GitHub 上为我们加星 ·
🐛 报告 Bug ·
💡 请求功能
标签:Awesome, Docker, IT运维, MDM, REST API, Socks5代理, 仪表盘, 占用监测, 多人体追踪, 安全防御评估, 开源, 测试用例, 漏洞追踪, 端点安全, 端点管理, 系统管理, 自动化攻击, 自托管, 补丁管理, 设备控制, 请求拦截, 资产管理, 软件部署, 轻量级代理, 远程监控, 逆向工具