Skip to content

BenediktSchackenberg/octofleet

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

658 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ™ Octofleet

Octofleet Banner

Open-source endpoint management platform
Monitor your fleet, deploy software, track vulnerabilities, manage patches, and control devices from a single dashboard.

Release License Stars Issues Tests

Quick Start β€’ Features β€’ Documentation β€’ Contributing β€’ Roadmap


🎯 Why Octofleet?

  • πŸš€ 5-Minute Setup β€” Docker Compose up and you're running
  • πŸ’― 100% Self-Hosted β€” Your data stays on your infrastructure
  • πŸ”“ Fully Open Source β€” No license fees, no vendor lock-in
  • πŸͺΆ Lightweight Agents β€” < 20MB footprint, minimal resource usage
  • πŸ”Œ API-First β€” 509 endpoints accessible via REST API
  • 🌐 Cross-Platform β€” Windows and Linux support
  • πŸŒ™ Dark Mode β€” Full dark mode across all pages

✨ Features

πŸ“Š Inventory & Monitoring

  • Real-time fleet dashboard with hotspot matrix
  • Hardware inventory (CPU, RAM, Disks, Network)
  • Hardware Fleet Dashboard β€” CPU/disk/storage aggregation, disk health monitoring, physical disk inventory
  • Software inventory with version tracking
  • Performance monitoring with heat intensity visualization
  • Process and network monitoring
  • Fleet-wide trend sparklines

πŸš€ Deployment & Jobs

  • Remote job execution (PowerShell, Bash)
  • Package management with tracking
  • Rollout strategies (Canary, Staged)
  • Maintenance windows
  • Service orchestration

πŸ” Security & Compliance

  • Security Center with dedicated pages for monitoring, findings, and forensics
  • Vulnerability scanning (NVD/CVE) + fleet-wide aggregation
  • Auto-remediation (winget/Chocolatey)
  • File audit β€” real-time monitoring (Windows + Linux)
  • Behavior rules β€” threshold, pattern & time-based detection
  • Findings & risk scoring β€” auto-generated, severity-weighted
  • Config posture snapshots β€” baseline drift detection
  • Activity dashboards β€” file & user activity, after-hours alerts
  • Evidence export & retention / legal hold
  • Role-based access control (RBAC) + UI audit logging

🩹 Patch & Update Orchestration β€” NEW in v0.6.0!

  • Patch catalog β€” centralized KB/update registry
  • Patch rings β€” Canary β†’ Pilot β†’ Broad rollout strategy
  • Deployment wizard β€” create, schedule, pause, resume, cancel
  • Compliance tracking β€” per-node and fleet-wide
  • Agent-side scanner β€” PatchScanner.cs discovers missing Windows updates

πŸ“ Configuration Baselines β€” NEW in v0.6.0!

  • CIS benchmark templates (Win Server 2022/2025, Win 11)
  • Baseline rules β€” registry, service, security policy checks
  • Drift detection β€” automatic evaluation with drift events
  • Auto-remediation β€” fix drifted settings automatically
  • Compliance dashboard with trend charts

πŸ“¦ Content Lifecycle β€” NEW in v0.6.0!

  • Repository management β€” APT, YUM, Chocolatey, NuGet, WinGet, Generic
  • Content snapshots β€” freeze repository state at a point in time
  • Environment pipeline β€” Dev β†’ Test β†’ Prod promotion
  • Promotion & rollback β€” advance or revert environments
  • Snapshot diff β€” compare any two snapshots

πŸ” Real-time Query Engine β€” NEW in v0.6.0!

  • DSL-to-SQL query builder with visual WHERE clause builder
  • 22 queryable tables across fleet, software, security, metrics, events
  • 18 pre-built templates for common fleet questions
  • Live agent queries β€” processes, services, open ports in real-time
  • CSV export for external analysis

πŸ“Š Software Metering & Licenses β€” NEW in v0.6.0!

  • Software catalog with auto-discovery from fleet inventory
  • License compliance β€” per-device, per-user, site, enterprise
  • Normalization rules β€” map name variations to catalog entries
  • Usage tracking & reclamation candidates
  • True-up reports for license reconciliation

πŸ–₯️ Remote Access & UX

  • Screen mirroring (live view)
  • Remote terminal in browser
  • Agent Activity Monitor β€” real-time SSE feed
  • Command Palette (Ctrl+K) β€” instant node search & navigation
  • Mega Dropdown Navigation β€” 2-column Security & Compliance mega menu
  • Dark Mode β€” full dark mode across all pages
  • Discord alert notifications

πŸ”Œ Zero-Touch Provisioning

  • PXE boot β€” No USB/ISO needed
  • WinPE deployment β€” Full automation
  • VirtIO support β€” KVM/QEMU ready
  • Multi-VLAN β€” Tentacle relay architecture
  • Driver injection β€” Auto hardware detection
  • Linux PXE β€” Ubuntu 22.04/24.04 via NFS

πŸ—„οΈ SQL Server Management

  • Automated SQL Server installation
  • Auto disk preparation (Data/Log/TempDB)
  • Version support: SQL Server 2025/2022/2019
  • Cumulative update deployment & compliance

πŸ”„ Self-Updating Agents

  • Windows agents auto-update from GitHub Releases
  • SHA256 verification & downgrade protection
  • Zero-touch deployment
  • Enrollment tokens for mass rollout

πŸ“Š Reports & Exports

  • PDF Reports β€” Fleet Summary, Security, Inventory
  • Excel/CSV/JSON exports β€” For all data types
  • Date range filtering β€” 7d/30d/90d presets
  • Report Generator page (/reports)

πŸ—οΈ Hardware Fleet Dashboard

  • CPU, disk, and storage fleet aggregation
  • Disk health monitoring (SMART)
  • Physical disk inventory across all nodes
  • Hardware export

πŸš€ Quick Start

Option 1: Docker (Recommended)

git clone https://github.com/BenediktSchackenberg/octofleet.git
cd octofleet
docker compose up -d

Open http://localhost:3000 β€” Login: admin / admin

Option 2: Install Agent

Windows (PowerShell as Admin β€” one-liner):

irm https://github.com/BenediktSchackenberg/octofleet/releases/latest/download/Install-OctofleetAgent.ps1 | iex

Then configure 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
}
Field Description Required
InventoryApiUrl Backend API URL (port 8080) Yes
InventoryApiKey API key for authentication Yes
GatewayUrl Gateway URL for remote access (port 18789) No
GatewayToken Gateway auth token No
DisplayName Node display name in UI No (defaults to hostname)

Restart the service after config changes:

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

Then configure /opt/octofleet-agent/config.env:

API_URL="http://your-server:8080"
API_KEY="your-api-key"

πŸ“– Full Agent Setup Guide β†’ Β· Installation Wiki β†’


πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                        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

πŸ“š Documentation

Topic Link
Quick Start docs/GETTING-STARTED.md
Architecture docs/ARCHITECTURE.md
Configuration docs/CONFIGURATION.md
API Reference docs/API-REFERENCE.md β€’ Swagger UI
Security Center docs/SECURITY-CENTER.md
Patch Management docs/PATCH-MANAGEMENT.md
Content Lifecycle docs/CONTENT-LIFECYCLE.md
Query Engine docs/QUERY-ENGINE.md
Software Metering docs/SOFTWARE-METERING.md
Agent Setup docs/AGENT-SETUP.md
Roadmap docs/ROADMAP-ENTERPRISE.md

πŸ”Œ API Endpoints (~450 total)

The backend exposes a full REST API with automatic OpenAPI documentation:

# Interactive API docs (Swagger UI)
open http://localhost:8080/docs

# Alternative: ReDoc
open http://localhost:8080/redoc

# OpenAPI JSON spec
curl http://localhost:8080/openapi.json

Key Endpoint Groups:

Category Endpoints Description
/api/v1/nodes 15 Node inventory, search, tree view
/api/v1/inventory/* 17 Hardware, software, hotfixes, security
/api/v1/jobs 10 Job creation, scheduling, results
/api/v1/packages 12 Package management, winget/choco
/api/v1/vulnerabilities 6 CVE tracking, suppression
/api/v1/remediation 23 Auto-remediation, health checks
/api/v1/services 10 Service orchestration
/api/v1/deployments 8 Software deployment
/api/v1/patches 20 Patch catalog, rings, deployments, compliance
/api/v1/baselines ~25 Config baselines, rules, evaluations, drift, templates, remediation
/api/v1/content 22 Content repos, items, snapshots, environments, promotion
/api/v1/query 4 Query engine (execute, schema, templates, live)
/api/v1/metering ~20 Software catalog, licenses, compliance, reclamation
/api/v1/hardware 2 Hardware fleet aggregation & export
/api/v1/security/* 34 Security monitoring, events, findings, evidence, audit

πŸ› οΈ Development

# Backend (FastAPI)
cd backend && python -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn main:app --reload --port 8080

# Frontend (Next.js)
cd frontend && npm install && npm run dev

# Windows Agent (.NET 8)
cd src/OctofleetAgent.Service && dotnet run

# Run Tests
cd tests/api && pytest
cd tests/e2e && npx playwright test

βš™οΈ Configuration

Environment Variables

Variable Default Description
API_KEY octofleet-inventory-dev-key API key for agent authentication
DATABASE_URL postgresql://octofleet:...@127.0.0.1:5432/inventory PostgreSQL connection string
JWT_SECRET Auto-generated Secret for JWT tokens (persistent)
NVD_API_KEY None NVD API key for vulnerability scanning
OCTOFLEET_GATEWAY_URL http://192.168.0.5:18789 Octofleet gateway URL
OCTOFLEET_GATEWAY_TOKEN Empty Token for gateway authentication

ℹ️ The backend reads API_KEY from the environment (with fallback to INVENTORY_API_KEY for backward compatibility). Use API_KEY for new deployments.

πŸ“– Full Configuration Reference β†’


🀝 Contributing

We love contributions! Octofleet is built by the community, for the community.

🌟 First time? Check out issues labeled good first issue

πŸ“– Read the Contributing Guide for setup instructions and guidelines.

Ways to Contribute

  • πŸ› Report bugs and request features
  • πŸ“ Improve documentation
  • πŸ’» Submit pull requests
  • 🌍 Translate to other languages
  • ⭐ Star the repo to show support!

πŸ—ΊοΈ Roadmap

See the Enterprise Roadmap and public roadmap for planned features.

βœ… Completed in v0.6.0

  • E30 Patch & Update Orchestration
  • E31 Configuration Baselines & Drift Management
  • E33 Content Repository & Lifecycle Management
  • E34 Real-time Query Engine
  • E38 Software Metering & License Tracking

πŸ”œ Upcoming

  • macOS Agent
  • LDAP/Active Directory & SSO/OIDC integration
  • Ansible/DSC integration
  • Cloud provider integration (Azure, AWS, Proxmox)
  • Multi-tenancy
  • High Availability

View Full Roadmap β†’


πŸ“„ License

MIT License β€” see LICENSE for details.


πŸ™ Acknowledgments

Built with FastAPI, Next.js, .NET 8, TimescaleDB

Vulnerability data from NVD β€’ Icons by Lucide


πŸ™ Reach every endpoint in your fleet

⭐ Star us on GitHub Β· πŸ› Report Bug Β· πŸ’‘ Request Feature