# fleetdm/fleet architecture

> Architecture diagram of the GitHub repository fleetdm/fleet, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/fleetdm/fleet
- Repository: https://github.com/fleetdm/fleet

## Overview

Fleet is a cross-platform device-management and security platform. Operators use its UI, APIs, or CLI to configure device management, deploy software, run queries, and inspect inventory and compliance; enrolled devices report data and receive management actions. The graph includes those documented capability areas and the live-query flow evidenced in sampled source. Most service wiring and feature implementations were not sampled, so uncertain internal links are omitted.

Main entry points: [`ee/server/service`](https://github.com/fleetdm/fleet/tree/main/ee/server/service) (Service endpoints), [`frontend`](https://github.com/fleetdm/fleet/tree/main/frontend) (Fleet web UI), [`server/service/client_live_query.go`](https://github.com/fleetdm/fleet/blob/main/server/service/client_live_query.go) (Live query client), [`cmd/fleetctl`](https://github.com/fleetdm/fleet/tree/main/cmd/fleetctl) (fleetctl CLI)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_operator["Operator interfaces"]
  node_web["Fleet web UI"]
  node_cli["fleetctl CLI"]
  node_querytargets["Query target selection<br/>[useQueryTargets.ts]"]
  node_livequery["Live query client"]
end

subgraph group_control["Fleet control plane"]
  node_api["Fleet server"]
  node_service["Service endpoints"]
  node_mysql[("MySQL datastore<br/>[nanomdm_storage.go]")]
end

subgraph group_device["Device management"]
  node_hosts(("Enrolled devices"))
  node_mdm["MDM and enrollment<br/>[mdm.go]"]
  node_software["Software deployment"]
end

subgraph group_security["Security and visibility"]
  node_inventory["Inventory and telemetry"]
  node_vulns["Vulnerability management<br/>[vulnerabilities.go]"]
  node_querydata["Distributed query results"]
end

subgraph group_integrations["Ecosystem integrations"]
  node_scim["SCIM provisioning"]
  node_mcp["Fleet MCP tools"]
  node_external(("External integrations"))
end

node_it(("IT and security teams"))

node_it -->|"manages devices"| node_web
node_it -->|"configures Fleet"| node_cli
node_web -->|"calls APIs"| node_service
node_cli -->|"calls APIs"| node_api
node_querytargets -->|"selects targets"| node_web
node_hosts -->|"checks in"| node_service
node_service -->|"handles enrollment"| node_mdm
node_service -->|"manages installs"| node_software
node_service -->|"collects data"| node_inventory
node_service -->|"serves vulnerability data"| node_vulns
node_livequery -->|"opens results stream"| node_service
node_livequery -->|"streams results"| node_querydata
node_hosts -->|"returns query results"| node_querydata
node_service -->|"persists MDM data"| node_mysql
node_scim -->|"provisions users"| node_service
node_mcp -->|"accesses Fleet"| node_service
node_external -.->|"integrates by API"| node_service

click node_web "https://github.com/fleetdm/fleet/tree/main/frontend"
click node_cli "https://github.com/fleetdm/fleet/tree/main/cmd/fleetctl"
click node_api "https://github.com/fleetdm/fleet/tree/main/cmd/fleet"
click node_service "https://github.com/fleetdm/fleet/tree/main/ee/server/service"
click node_querytargets "https://github.com/fleetdm/fleet/blob/main/frontend/hooks/useQueryTargets.ts"
click node_livequery "https://github.com/fleetdm/fleet/blob/main/server/service/client_live_query.go"
click node_mdm "https://github.com/fleetdm/fleet/blob/main/ee/server/service/mdm.go"
click node_software "https://github.com/fleetdm/fleet/blob/main/ee/server/service/software_installers.go"
click node_inventory "https://github.com/fleetdm/fleet/tree/main/server/service"
click node_vulns "https://github.com/fleetdm/fleet/blob/main/ee/server/service/vulnerabilities.go"
click node_querydata "https://github.com/fleetdm/fleet/blob/main/server/service/client_live_query.go"
click node_mysql "https://github.com/fleetdm/fleet/blob/main/server/datastore/mysql/nanomdm_storage.go"
click node_scim "https://github.com/fleetdm/fleet/tree/main/ee/server/scim"
click node_mcp "https://github.com/fleetdm/fleet/tree/main/cmd/fleet-mcp"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_cli,node_querytargets,node_livequery toneBlue
class node_api,node_service,node_mysql toneAmber
class node_hosts,node_mdm,node_software toneMint
class node_inventory,node_vulns,node_querydata toneRose
class node_scim,node_mcp,node_external,node_it toneIndigo
```

## Components

### Operator interfaces

- [Fleet web UI](https://github.com/fleetdm/fleet/tree/main/frontend): `frontend`
- [fleetctl CLI](https://github.com/fleetdm/fleet/tree/main/cmd/fleetctl): `cmd/fleetctl`
- [Query target selection](https://github.com/fleetdm/fleet/blob/main/frontend/hooks/useQueryTargets.ts): `frontend/hooks/useQueryTargets.ts`
- [Live query client](https://github.com/fleetdm/fleet/blob/main/server/service/client_live_query.go): `server/service/client_live_query.go`

### Fleet control plane

- [Fleet server](https://github.com/fleetdm/fleet/tree/main/cmd/fleet): `cmd/fleet`
- [Service endpoints](https://github.com/fleetdm/fleet/tree/main/ee/server/service): `ee/server/service`
- [MySQL datastore](https://github.com/fleetdm/fleet/blob/main/server/datastore/mysql/nanomdm_storage.go): `server/datastore/mysql/nanomdm_storage.go`

### Device management

- **Enrolled devices**
- [MDM and enrollment](https://github.com/fleetdm/fleet/blob/main/ee/server/service/mdm.go): `ee/server/service/mdm.go`
- [Software deployment](https://github.com/fleetdm/fleet/blob/main/ee/server/service/software_installers.go): `ee/server/service/software_installers.go`

### Security and visibility

- [Inventory and telemetry](https://github.com/fleetdm/fleet/tree/main/server/service): `server/service`
- [Vulnerability management](https://github.com/fleetdm/fleet/blob/main/ee/server/service/vulnerabilities.go): `ee/server/service/vulnerabilities.go`
- [Distributed query results](https://github.com/fleetdm/fleet/blob/main/server/service/client_live_query.go): `server/service/client_live_query.go`

### Ecosystem integrations

- [SCIM provisioning](https://github.com/fleetdm/fleet/tree/main/ee/server/scim): `ee/server/scim`
- [Fleet MCP tools](https://github.com/fleetdm/fleet/tree/main/cmd/fleet-mcp): `cmd/fleet-mcp`
- **External integrations**

### Other components

- **IT and security teams**

## Connections

- IT and security teams → Fleet web UI: manages devices
- IT and security teams → fleetctl CLI: configures Fleet
- Fleet web UI → Service endpoints: calls APIs
- fleetctl CLI → Fleet server: calls APIs
- Query target selection → Fleet web UI: selects targets
- Enrolled devices → Service endpoints: checks in
- Service endpoints → MDM and enrollment: handles enrollment
- Service endpoints → Software deployment: manages installs
- Service endpoints → Inventory and telemetry: collects data
- Service endpoints → Vulnerability management: serves vulnerability data
- Live query client → Service endpoints: opens results stream
- Live query client → Distributed query results: streams results
- Enrolled devices → Distributed query results: returns query results
- Service endpoints → MySQL datastore: persists MDM data
- SCIM provisioning → Service endpoints: provisions users
- Fleet MCP tools → Service endpoints: accesses Fleet
- External integrations → Service endpoints: integrates by API
