whatisgithub

What is netboot.xyz?

netbootxyz/netboot.xyz — explained in plain English

Analysis updated 2026-06-24

11,765JinjaAudience · ops devopsComplexity · 3/5Setup · moderate

In one sentence

A network booting tool that lets you install any of dozens of operating systems by picking from a menu at machine startup, with no USB drive or ISO download required.

Mindmap

mindmap
  root((netboot.xyz))
    What it does
      Network OS booting
      No USB needed
      OS installer menu
    Boot formats
      ISO files
      USB images
      DHCP boot files
      UEFI and BIOS
    Use cases
      OS installation
      Home lab provisioning
    Audience
      Sysadmins
      Home lab users
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Boot into any of dozens of Linux or other OS installers over the network without writing a USB drive

USE CASE 2

Configure a DHCP server to automatically serve the netboot.xyz menu to all new machines on a network

USE CASE 3

Run a self-hosted copy of netboot.xyz with custom boot menu entries and your own boot file server

USE CASE 4

Boot a Raspberry Pi 4 or ARM64 machine over the network using the dedicated ARM image

What is it built with?

JinjaAnsibleDockeriPXE

How does it compare?

netbootxyz/netboot.xyzeaszlab/kubeaszkubernetes-sigs/kubespray
Stars11,76511,36218,476
LanguageJinjaJinjaJinja
Setup difficultymoderatehardhard
Complexity3/54/55/5
Audienceops devopsops devopsops devops

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires a DHCP server or firmware that supports iPXE network booting, first-time setup varies significantly by router and hardware model.

License terms are not stated in the explanation.

So what is it?

netboot.xyz is a tool that lets you start up (boot) a computer into an operating system installer over the network, without needing to first download an ISO file and write it to a USB drive. Instead, the computer connects to netboot.xyz during startup and shows a menu where you can pick which operating system you want to install. The underlying technology is called iPXE, which is a way to tell a computer to look for boot instructions from the network rather than from a local disk. When a computer starts and iPXE is active, it can load the netboot.xyz menu, which then lets you choose from a range of operating systems. This works within the BIOS or firmware interface on the computer. The project provides bootloader files in several formats to cover different hardware setups. There are ISO files for use with virtual machines or remote management interfaces, USB disk images for writing to a thumb drive, kernel files for loading through an existing bootloader like GRUB, and DHCP boot files that a network server can send to computers automatically when they start. There are separate versions for older BIOS-based machines, modern UEFI firmware, ARM64 processors, and the Raspberry Pi 4. For people who want to run their own copy of the service rather than using the public hosted version, the repository includes scripts to build and deploy everything yourself. The build system is based on Ansible, a configuration management tool. There is also a Docker option for building locally. Settings can be overridden through a configuration file to change things like where the boot files are served from. Full documentation, a list of supported operating systems, and guides for different booting methods are available on the project's website.

Copy-paste prompts

Prompt 1
Using netboot.xyz, set up a DHCP server option so that all new machines on my home network automatically load the netboot.xyz OS installer menu at startup.
Prompt 2
I want to self-host netboot.xyz using Docker. Walk me through pulling the image, mounting a config override file, and pointing it to a custom boot file server URL.
Prompt 3
Show me how to add a custom entry to the netboot.xyz menu for an operating system that is not in the default list.
Prompt 4
I have one UEFI machine and one BIOS machine. Which netboot.xyz bootloader files do I need for each, and where do I place them on the DHCP server?
Prompt 5
Build the netboot.xyz boot files locally using the Ansible-based build system and explain what each output file is for.

Frequently asked questions

What is netboot.xyz?

A network booting tool that lets you install any of dozens of operating systems by picking from a menu at machine startup, with no USB drive or ISO download required.

What language is netboot.xyz written in?

Mainly Jinja. The stack also includes Jinja, Ansible, Docker.

What license does netboot.xyz use?

License terms are not stated in the explanation.

How hard is netboot.xyz to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is netboot.xyz for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.