Skip to content

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 08 Feb 04:51
· 95 commits to main since this release

Dragonfly v0.3.0

A massive release bringing UEFI support, VMware compatibility, full DHCP mode, windowed TFTP, and working Docker deployment.

Highlights

  • UEFI PXE boot support — Dragonfly now boots machines in both BIOS and UEFI mode. EFI machines get a GRUB shim that chainloads Spark, fully automatic
  • Full DHCP mode — Dragonfly can now act as a standalone DHCP server with lease management, static reservations, and per-network configuration
  • VMware bare metal support — Spark now includes VMware PVSCSI and SVGA II drivers for booting on VMware/ESXi hardware
  • Working Docker deployment — Fixed Dockerfile, added docker-compose.yml with host networking, templates and static assets baked into the image
  • Windowed TFTP transfers — RFC 7440 implementation for dramatically faster PXE boot file delivery

New Features

UEFI Boot Support

  • EFI iPXE support: serves native x86_64 ELF for EFI, elf32 for BIOS automatically
  • GRUB EFI shim (grub-spark.efi) bundles Spark for EFI PXE multiboot
  • UEFI HTTP Boot support as an alternative boot path
  • EFI GOP video modules in GRUB shim for graphical Spark UI on EFI

Full DHCP Mode

  • Complete standalone DHCP server with lease management and static reservations
  • Per-network DHCP mode configuration (selective/flexible/full)
  • DHCP mode moved from global settings to per-network for fine-grained control
  • PXE Option 43 vendor extensions for VMware PXE compatibility

VMware Support (Spark)

  • VMware PVSCSI disk controller driver for bare metal boot on VMware hardware
  • VMware SVGA II framebuffer driver for graphical Spark UI on VMware
  • PCI bus scan caching for faster boot on hardware with many PCI devices

Networking

  • RFC 7440 windowed TFTP transfers for faster PXE boot
  • TFTP OACK correctly echoes only client-requested options (RFC 2347)
  • Zero-length TFTP termination block for files that are exact multiples of block size
  • Server-side resolution of GitHub/GitLab SSH keys for RHEL/Rocky compatibility

Docker

  • Fixed Dockerfile entrypoint (serve not server)
  • DRAGONFLY_INSTALLED env var honored for containerized deployments
  • docker-compose.yml with host networking (required for DHCP/TFTP broadcast)
  • OS templates and static assets baked into the Docker image

Bug Fixes

  • Fixed VBE BIOS calls crashing on UEFI-only Multiboot2 boot
  • Fixed SVGA II version ID constant (0x900002 was wrong, now 0x90000002)
  • Fixed SVGA II I/O port register spacing (byte offsets, not dword-spaced)
  • Rocky Linux and Proxmox added to template download fallback list
  • PXE boot options always included in Full DHCP mode responses

Release Artifacts

Artifact Description
dragonfly-linux-amd64 Server binary (x86_64 Linux)
dragonfly-linux-arm64 Server binary (aarch64 Linux)
dragonfly-macos-arm64 Server binary (Apple Silicon)
dragonfly-agent-linux-amd64 Mage agent (x86_64, static musl)
dragonfly-agent-linux-arm64 Mage agent (aarch64, static musl)
spark.elf Spark bootloader (BIOS multiboot2)
spark-efi.elf Spark bootloader (EFI multiboot2)
grub-spark.efi GRUB EFI shim with embedded Spark

Docker

docker pull ghcr.io/riffcc/dragonfly:latest

Full Changelog: v0.2.3...v0.3.0