Octofleet: Zero-Touch OS Deployment with PXE Boot πŸ™

Octofleet Logo

Today was a highly productive day! We’ve extended Octofleet with a powerful new feature: Zero-Touch OS Deployment via PXE Boot.

What is Octofleet?

Octofleet is our open-source Endpoint Management Platform. Think of it as an octopus πŸ™ with 8 arms, each handling a different server task: monitoring, patching, installing, configuring, securing, and more!

Imagine you have 50 servers or workstations that all need a fresh operating system. Normally that means: burning USB sticks, changing BIOS settings, clicking through installers… Boring!

With Octofleet, it’s now as simple as:

  1. Enter MAC address
  2. Select operating system
  3. Click β€œCreate Job”
  4. Power on server β†’ done!

No USB stick. No installer. No clicking around. Zero-Touch.

How Does PXE Boot Work?

PXE (Preboot Execution Environment) allows a computer to boot directly over the network – no local hard drive or USB required.

The flow:

1. Server starts β†’ DHCP Request
2. DHCP responds with IP + PXE Server address
3. Server loads iPXE bootloader (via TFTP)
4. iPXE asks Octofleet API: "What should I do?"
5. API responds: "Here's your boot script for Windows Server 2025!"
6. WinPE starts β†’ Partitions disk β†’ Downloads image β†’ Installs
7. Windows boots β†’ Domain Join β†’ Agent installed β†’ DONE!

The beauty: Everything happens over HTTP. No SMB shares, no firewall headaches.

What We Built Today

πŸ”§ Backend

  • Provisioning API with CRUD endpoints for Tasks, Images, and Templates
  • Dynamic iPXE generation – each MAC address gets its own boot script
  • Database schema for provisioning tasks with full state tracking
  • Status callbacks – servers report their installation progress back to the API

🎨 Frontend

  • Provisioning Dashboard with live data from the API (no more mock data!)
  • β€œNew Job” Dialog – enter MAC, select OS, and go
  • Task Queue with real-time status (Pending β†’ Booting β†’ Installing β†’ Done)
  • Auto-refresh every 10 seconds
  • Delete and retry functionality for failed tasks

πŸ“¦ Windows Deployment

  • Windows Server 2025 (Standard & Datacenter editions)
  • Unattend.xml for fully automated installation:
    • German locale & timezone (customizable)
    • Admin password pre-configured
    • RDP enabled out of the box
    • Automatic Domain Join
  • WinPE Boot Image with curl.exe for HTTP downloads

πŸ–₯️ Hypervisor Support

  • Hyper-V Generation 2 (UEFI) – tested and working!
  • KVM/libvirt – template prepared with VirtIO drivers
  • Bare Metal – template for physical servers

The Tech Stack

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚              Octofleet UI                   β”‚
β”‚         (Next.js + Tailwind CSS)            β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚ HTTP/REST
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚           Octofleet Backend                 β”‚
β”‚      (FastAPI + PostgreSQL + asyncpg)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚ 
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚             PXE Server                      β”‚
β”‚   (dnsmasq + nginx + iPXE + WinPE)          β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                  β”‚ PXE/HTTP
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚            Target Server                    β”‚
β”‚      (boots via network β†’ installed!)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

Why β€œOctofleet”?

Like an octopus with 8 arms, Octofleet handles multiple tasks simultaneously:

  1. πŸ”§ Patching – keeping systems up to date
  2. πŸ–₯️ Installing – deploying fresh OS images
  3. πŸ“Š Monitoring – tracking system health
  4. πŸͺŸ Windows Management – domain join, roles, features
  5. πŸ’» Terminal Access – remote command execution
  6. 🌐 Networking – configuration and connectivity
  7. βš™οΈ Configuration – settings and policies
  8. πŸ›‘οΈ Security – vulnerability tracking and compliance

All from a single, unified platform!

What’s Next?

This is just the beginning! On our roadmap:

  • Ubuntu/Linux Support – Autoinstall & Cloud-Init integration
  • Windows 11 – for client deployments
  • Windows Server 2019 – legacy support
  • Live Status Callbacks – real-time progress in the UI
  • Systems Registry – provisioned systems as permanent entities

Conclusion

From β€œpower on server” to β€œdomain-joined & RDP-ready” now takes only 15-20 minutes. Without anyone lifting a finger. That’s the magic of Zero-Touch Deployment!

The code is open source on GitHub: BenediktSchackenberg/octofleet

Questions? Feedback? Hit me up on Discord!


πŸ™ Octofleet – Because server installation shouldn’t be boring.