this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

docs: add acknowledgements and update feature list

Khue Doan 96890a0e 6ae16864

+37 -10
+37 -10
README.md
··· 1 1 # Nixie 2 2 3 - NixOS PXE boot install with 4 - [Wake-on-LAN](https://en.wikipedia.org/wiki/Wake-on-LAN), 5 - [Pixiecore](https://github.com/danderson/netboot/tree/main/pixiecore) and 6 - [nixos-anywhere](https://nix-community.github.io/nixos-anywhere). 7 - Currently, only `x86_64-linux` is supported. 3 + > [!CAUTION] 4 + > This project is still a work in progress and will not be ready for use until 5 + > most of the [features](#features) below are completed. 6 + 7 + Easy NixOS PXE boot install. 8 8 9 9 ## Features 10 + 11 + Currently, only `x86_64-linux` is supported. 10 12 11 13 - [x] Simple, declarative JSON configuration 12 14 - [x] Build a custom NixOS installer from a flake 13 - - [x] Built-in PXE server to serve netboot components from the custom installer 14 - - [ ] Host status check with IP discovery 15 - - [ ] Remote power-on with Wake-on-LAN 15 + - [x] Built-in PXE server based on [Pixiecore](https://github.com/danderson/netboot/tree/main/pixiecore) to serve netboot components from the custom installer 16 16 - [ ] Custom agent and API to manage the installation process 17 - - [ ] Install NixOS from a flake using nixos-anywhere 18 - - [x] Stateless 17 + - [ ] Install NixOS from a flake using [nixos-anywhere](https://nix-community.github.io/nixos-anywhere) 18 + - [ ] Remote power-on with [Wake-on-LAN](https://en.wikipedia.org/wiki/Wake-on-LAN) 19 + - [ ] Host status check with IP discovery 20 + - [x] Stateless and ephemeral [^1] 21 + - [ ] Fast, under 2 minutes to install NixOS from empty hard drives [^2] 22 + 23 + [^1]: No pre-configured PXE server is required to install other machines - you 24 + only need to run Nixie on your laptop or workstation. This solves the 25 + "first machine in the data center" problem: in bare-metal setups with 26 + persistent PXE servers, you would otherwise need to automate the installation 27 + of the PXE server itself. 28 + [^2]: Using the provided examples with a warm cache. Factors that affect the 29 + speed include whether the configuration has been cached in the Nix store, 30 + the size of the NixOS configuration, the network speed, etc. 19 31 20 32 ## Usage 21 33 ··· 92 104 93 105 Note over Nixie: Return when all machines are installed 94 106 ``` 107 + 108 + ## Acknowledgements 109 + 110 + This project is a rewrite of my previous ephemeral PXE server implementation in 111 + my [khuedoan/homelab](https://github.com/khuedoan/homelab) repository, which 112 + used a stateless PXE server in Docker with Ansible templating and targeted 113 + generic Linux distributions. It has been rebuilt from the ground up for NixOS, 114 + offering a more integrated and robust experience in this project. All credits 115 + from the previous implementation are also referenced here, as similar knowledge 116 + and concepts apply. 117 + 118 + - Ephemeral PXE server [^1] inspired by [Minimal First Machine in the DC](https://speakerdeck.com/amcguign/minimal-first-machine-in-the-dc) 119 + - [NixOS netboot with pixiecore](https://nixos.wiki/wiki/Netboot) 120 + - [The Pixiecore library](https://github.com/danderson/netboot/tree/main/pixiecore) 121 + - Custom agent for the installation process inspired by [OpenStack ironic-python-agent](https://opendev.org/openstack/ironic-python-agent) and [Tinkerbell Worker](https://tinkerbell.org/docs/services/tink-worker)