# netboot.xyz — Network Boot Any Operating System from a Single Menu > netboot.xyz is a PXE boot server that lets you install or boot dozens of operating systems and utilities over the network from a single lightweight menu. It fetches installers on-demand from upstream mirrors, so you never need to maintain a library of ISO images. ## Install Save in your project root: # netboot.xyz — Network Boot Any Operating System from a Single Menu ## Quick Use ```bash # Run the self-hosted version with Docker docker run -d --name netbootxyz -p 3000:3000 -p 69:69/udp -p 8080:80 ghcr.io/netbootxyz/netbootxyz:latest ``` ## Introduction netboot.xyz provides a single iPXE boot menu that can install or live-boot a wide variety of Linux distributions, BSD variants, Windows PE, and diagnostic utilities. Instead of juggling USB drives or ISO files, you configure your DHCP server to point at netboot.xyz and boot any machine into whatever OS you need. ## What netboot.xyz Does - Serves an iPXE boot menu with 50+ operating systems and utilities - Downloads installers and live images on-demand from upstream mirrors - Supports PXE, iPXE, and HTTP boot for BIOS and UEFI systems - Offers a web-based dashboard for customizing the boot menu - Allows adding custom boot entries for internal images and scripts ## Architecture Overview The system consists of an iPXE boot loader, a menu configuration built from templates, and optionally a TFTP server and local HTTP asset cache. When a machine PXE-boots, it loads the iPXE firmware, which fetches the menu over HTTP. Selecting an OS streams the kernel, initrd, and installer from the upstream mirror or local cache. The self-hosted Docker image bundles TFTP, a web UI, and a local HTTP server. ## Self-Hosting & Configuration - Deploy via Docker or Docker Compose with ports for TFTP (69/udp), HTTP (80), and the web UI (3000) - Configure your DHCP server to hand out the netboot.xyz iPXE boot file - Customize available OS entries through the web dashboard or YAML config files - Optionally cache assets locally for air-gapped or bandwidth-constrained environments - Supports both BIOS and UEFI boot modes with separate boot files ## Key Features - One menu for 50+ operating systems and rescue utilities - On-demand image fetching eliminates local ISO storage - Web-based menu editor for adding and organizing boot entries - UEFI Secure Boot support with signed iPXE binaries - Works with any DHCP server that supports PXE options ## Comparison with Similar Tools - **FOG Project** — Full imaging and inventory suite; netboot.xyz is lighter and focuses on network booting - **Cobbler** — Provisioning server for RHEL/CentOS; netboot.xyz is distro-agnostic with a simpler setup - **MAAS (Canonical)** — Bare-metal cloud provisioning; netboot.xyz targets quick installs rather than fleet management - **Ventoy** — Multi-boot USB tool; netboot.xyz works over the network with no USB drive required ## FAQ **Q: Do I need to self-host netboot.xyz?** A: No. You can boot directly from the public boot.netboot.xyz endpoint. Self-hosting adds customization and caching. **Q: Can I add my own custom boot images?** A: Yes. Add custom iPXE menu entries pointing to your kernel, initrd, and boot parameters via the web UI or config files. **Q: Does it work with Wi-Fi-only machines?** A: PXE boot requires a wired Ethernet connection. Once the OS installer loads, it can use Wi-Fi. **Q: How much bandwidth does a boot consume?** A: It depends on the OS. A minimal Ubuntu netinstall fetches about 300 MB; full live images are larger. ## Sources - https://github.com/netbootxyz/netboot.xyz - https://netboot.xyz/docs/ --- Source: https://tokrepo.com/en/workflows/00440146-4106-11f1-9bc6-00163e2b0d79 Author: AI Open Source