NOTE: Dragonfly is still in development and not ready for production use.
This README reflects the goals of the project for an initial release, and is not yet reality.
🧠 The Bare Metal Infrastructure Management System that makes metal effortless — built in Rust, styled in Tailwind, designed for efficiency and reliability.
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 Alpine-based agent that registers itself with the Dragonfly server. From there, Dragonfly can:
-
Grab details about the machine
-
Automatically or manually assign an operating system and optional role
-
Install the operating system
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 + Dragonfly Agent
- 🔄 Automated OS installation with support for ISOs, PXE, and chainloading.
- 🧚 Powered by Tinkerbell under the hood for wide compatibility and support for just about any hardware.
- 🏎️ Deployment as fast as four minutes.
- 🛰️ (WIP) Distributed storage and IPFS deployment for integrated data management.
More features:
- 🌍 (WIP) Uses DNS to find machine hostnames automatically
- 🔒 (WIP) Login system with admin/user roles and permissions
- 🔧 (WIP) Reimage any machine in two clicks
- 🧸 (WIP) Safety Mode (Molly Guard) — avoid accidentally nuking a machine
- 🚀 (WIP) Built-in IPMI/BMC/Redfish power control and SSH control support for flexible node power operations.
- 🧠 (WIP) Effortless grouping and tagging for your machines, and emoji/font-awesome icon support for easy visual identification.
- 💈 (WIP) Real-time deployment tracking with progress bars and status indicators.
- 🖼️ (WIP) Ready for Retina, ultrawide and kiosk displays
- 🏷️ (WIP) "Just Type" experience — with bulk editing, drag-fill, and autocomplete
- 🎨 (WIP) Tailwind-powered theming — pick your aesthetic or import your own.
- 🩻 (WIP) Introspection - view details of your machines, including hardware, OS, and network configuration.
- 🔍 (WIP) Search - find any machine by name, tag, or ID.
- 📊 (WIP) Granular reporting and monitoring of your machines.
- 📦 (WIP) Built in image management for OS and drivers.
- 🎮 (WIP) Gamepad and touchscreeen support for easy navigation of the UI.
See ROADMAP.md for upcoming features and planned work.
You'll need Rust installed to use Dragonfly. Later in development, we'll be providing pre-built binaries and Docker images.
To get a binary to run:
cargo build --release -p dragonfly-server
For development:
cargo run -p dragonfly-server
Once you've got Dragonfly up and running, you can access the web interface at http://localhost:9800.
Dragonfly uses the SQLx crate for database integration.
Dragonfly is inspired by and intended as a GUI for the Tinkerbell project. It would not be 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")
Thanks to DJARTMUSIC for the rocket ignition sound effect.
Dragonfly is licensed under the AGPLv3 license.
See the LICENSE for more details.