Add Your First Device
From the dashboard
- Log in at app.kvmfleet.io
- Click + Add device in the sidebar
- Optionally set a name (e.g.
DC1-Rack3-Server7) and tags (e.g.prod, frankfurt) - Click Issue enrollment token
- Copy the install command and run it on your KVM device
The token is single-use and expires after 30 minutes.
From the API
TOKEN="your-jwt-here"
curl -X POST https://app.kvmfleet.io/v1/devices/enrollment \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"suggested_name": "my-kvm", "suggested_tags": ["prod"]}'
Response:
{
"token": "ekvent_XgiqILZeI6C9FX-tmb-bUD...",
"expires_at": "2026-04-23T10:30:00Z",
"install_cmd": "curl -sSL https://app.kvmfleet.io/install | sh -s -- --token ekvent_..."
}
What happens during enrollment
sequenceDiagram
participant Admin as You (dashboard)
participant API as KVM Fleet Platform
participant Device as KVM Device
participant Agent as Agent
Admin->>API: POST /v1/devices/enrollment
API-->>Admin: enrollment token (30 min TTL)
Admin->>Device: SSH + paste install command
Device->>Agent: install script starts agent
Agent->>API: POST /v1/agent/register {token, hw_id}
API-->>Agent: {device_id, auth_token}
Agent->>API: WebSocket connect (heartbeats begin)
API-->>Admin: device appears in dashboard
Device naming conventions
Use a consistent naming scheme across your fleet:
| Pattern | Example | Good for |
|---|---|---|
{site}-{rack}-{server} |
DC1-R3-S7 |
Data centers |
{client}-{location} |
acme-munich |
MSPs |
{role}-{number} |
web-01 |
Simple fleets |
Tags help with filtering: prod, staging, frankfurt, client-acme.