Skip to content

davejbax/pixie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GitHub Release Go Reference Go Report Card Test workflow

Pixie

A PXE boot server written in Go, aiming to make network installations of Linux distributions simple.

Overview

(Note: this project is under construction, and does not yet have any releases)

Pixie aims to provide a lightweight, zero dependency (no system packages required), modern way to support installing Linux on bare metal and virtual machines via UEFI network (PXE) boot.

The main motivation behind this project is to ease the complexity and manual maintenance around this task. Existing solutions for network booting often require many manual steps, such as acquiring and extracting Linux ISOs (and updating them for new OS releases), setting up a TFTP boot directory, installing/running grub-mknetdir, setting up an HTTP(S) server with the installation tree and kickstart files, etc.

In contrast, Pixie requires no external packages, and asks users only to write a simple declarative configuration file and point a DHCP server at its address. Pixie will handle:

  • Generating UEFI bootloaders with GRUB
  • Creating and serving necessary files for boot and installation over TFTP/HTTP
  • Fetching and extracting Linux ISOs for configured OSes
  • Optionally, automatically upgrading OS versions to new minor releases (e.g. Rocky 9.1 -> Rocky 9.4)

Features

Key:

✅ Supported
🚧 Work in progress
⏳ Planned
❌ Unsupported

Feature Status
Boot
UEFI: x86_64
UEFI: ARM64 🚧
UEFI: i386
UEFI: other architectures
BIOS
Bootloader: GRUB
Bootloader: OCI image
Bootloader: local UEFI file
Services
TFTP server 🚧
HTTP server
Bootable ISO creation 🚧
Operating systems
Ubuntu
Debian
Rocky Linux
User-provided Linux ISO
Non-Linux OS
Deployment
`go install`
Helm chart
OS package

About

PXE boot server in Go

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published