FleetDM is the endpoint data layer of NextAudit AI. It enrolls hosts via osquery, continuously collects hardware and software inventory, evaluates policy posture, and runs scheduled vulnerability scans — all through a single API that n8n workflows and Flowise AI flows can query to drive audit decisions.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/Kevin2523/nextAuditAi/llms.txt
Use this file to discover all available pages before exploring further.
Service configuration
Thefleet service uses the official fleetdm/fleet image and targets the linux/x86_64 platform. Before it starts, it runs fleet prepare db --no-prompt to apply any pending database migrations, then launches the server.
Startup dependencies
Fleet waits for three conditions before starting:| Dependency | Condition | Purpose |
|---|---|---|
mysql | service_healthy | Schema migrations require a live database |
redis | service_healthy | Session and query caching must be available |
fleet-init | service_completed_successfully | Volume ownership must be set before Fleet writes logs |
fleet-init container
fleet-init is a one-shot Alpine container that runs before the main fleet service. Its sole job is to set the correct ownership on the three shared volumes so the Fleet process (which runs as UID 100 / GID 101) can write to them without permission errors.
fleet-init has no restart policy and runs exactly once per docker compose up. Docker Compose tracks its exit code; only a zero exit triggers the service_completed_successfully condition that unblocks fleet.Environment variables
Server and TLS
FLEET_SERVER_TLS accepts true or false. When true, set FLEET_SERVER_CERT and FLEET_SERVER_KEY to the paths inside the container where the TLS certificate and key are mounted. Generate FLEET_SERVER_PRIVATE_KEY with:
Backend connections
mysql, redis) as hostnames, so no host-level DNS is required.
Session and logging
FLEET_FILESYSTEM_STATUS_LOG_FILE and FLEET_FILESYSTEM_RESULT_LOG_FILE define the paths inside the /logs volume where osquery status events and query results are written. Set FLEET_OSQUERY_STATUS_LOG_PLUGIN to filesystem to activate file-based logging.
Volume mounts
| Mount | Purpose |
|---|---|
data:/fleet | Fleet application state and persistent data |
logs:/logs | osquery status and result log files |
vulndb:${FLEET_VULNERABILITIES_DATABASES_PATH} | NVD vulnerability feed data |
./certs/fleet.crt | TLS certificate (read-only) |
./certs/fleet.key | TLS private key (read-only) |
Vulnerability database
Fleet downloads and periodically refreshes the NVD vulnerability feed into thevulndb volume. Three environment variables control this behavior:
FLEET_VULNERABILITIES_DATABASES_PATH must match the container-side mount point in the vulndb volume binding. FLEET_VULNERABILITIES_PERIODICITY is a duration string (e.g. 1h) that controls how often Fleet re-checks for updated vulnerability data.
Health check
Fleet exposes a/healthz endpoint. The compose health check polls it every 10 seconds with up to 12 retries before marking the container unhealthy: