metal, managed
Dragonfly is a fast, flexible, and satisfying platform for managing and deploying bare-metal infrastructure at any scale.
Whether you’ve got 5 test VMs or 5,000 enterprise grade machines in a datacenter...
Dragonfly will help.
Dragonfly is a virtual and bare-metal provisioning and orchestration system. It answers the question:
“I just racked a machine - what happens next?”
When a machine boots via PXE, it loads a minimal agent that registers itself with the Dragonfly server.
From there, Dragonfly can:
- Grab details about the machine
- Install an operating system
- Boot any ISO via the Dragonfly server
- Run memtest or drop to a root shell
Dragonfly turns unconfigured hardware into usable infrastructure — automatically, securely, and quickly.
The main highlights:
- 🌍 Web interface for managing, deploying and monitoring your machines and infrastructure.
- 📡 Automatic machine registration via PXE + Spark (Dragonfly Agent)
- 🔄 Automated OS installation with support for ISOs, PXE, and chainloading.
- 🏎️ Deploy Linux in under 60 seconds.
- 🔧 Perform maintenance tasks such as memtest, rescue mode boot and remote reimaging. More features:
- 🔒 Login system with admin/user roles and permissions
- 🔧 Reimage any machine in two clicks
- 🧠 Effortless grouping and tagging for your machines, and emoji/font-awesome icon support for easy visual identification.
- 💈 Real-time deployment tracking with progress bars and status indicators.
- 🏷️ "Just Type" experience — with bulk editing, drag-fill, and autocomplete.
- 🩻 Introspection - view details of your machines, including hardware, OS, and network configuration.
- 🔍 Search - find any machine by name, tag, or ID.
- ⚡ Near-instant reimage pickup — agents receive intents over a WebSocket push channel the moment they're set, instead of polling.
The Mage agent holds a persistent WebSocket to the server and receives reimage
and OS-assign intents the moment they're set — near-instant pickup with no
polling in steady state (it previously polled every 30s). It's on by
default: iPXE emits dragonfly.url as ws:// (or wss://), so every Mage
netboot uses the channel automatically.
To opt out and fall back to the 30s HTTP poll, set one variable on the server:
DRAGONFLY_DISABLE_AGENT_WS=1
Spark (the no_std bare-metal agent) can't hold a WebSocket, so a machine parked at Spark's "No OS" menu instead re-checks-in on a short loop and notices a reimage without a manual reboot. That interval is a multiboot cmdline parameter, default 5s:
idle_check_secs=5
See ROADMAP.md for upcoming features and planned work.
See dragonfly.computer for installation instructions.
Dragonfly is licensed under the AGPLv3 license.
See the LICENSE for more details.
Dragonfly is inspired by the Tinkerbell project. It would not have been possible without their work, and we're grateful for their efforts.
We also thank other projects that Dragonfly builds on, such as:
Thanks to Taylor Vick for the login page background image ("racks.jpg")
This project's development is accelerated via contributions from LLMs ("code-gen"/"ai generated code").
A combination of manual human testing and automated testing is used when developing Dragonfly, and real hardware with real stakes is used to validate it.
Tools used include:
- Claude Code (Anthropic) + Codex (OpenAI) + Palace (Riff Labs)
Models used include:
- Claude (Anthropic, various models)
- GPT-Codex, GPT (OpenAI, various models)
- GLM (Z.ai, various models)
Further details on our specific usage of AI for development will be published in a documentation refresh.
