No description
Find a file
2025-11-01 17:10:52 -04:00
configuration enabled optional packages by default 2025-11-01 17:10:52 -04:00
.gitignore first commit 2025-10-16 01:13:51 -04:00
flake.lock first commit 2025-10-16 01:13:51 -04:00
flake.nix first commit 2025-10-16 01:13:51 -04:00
installer.nix first commit 2025-10-16 01:13:51 -04:00
LICENSE first commit 2025-10-16 01:13:51 -04:00
README.md first commit 2025-10-16 01:13:51 -04:00

airgapped-nixos-auto-installer

Build recipe for an unattended, offline capable USB-bootable NixOS installer to bootstrap random computers.

I typically use this to "transform" random computers to minimally setup NixOS machines by putting in my USB stick and boot from it. Afterward, the machine can be rebootet and then i can deploy whatever config i want over it from remote via SSH. The system is really just meant as a trampoline for installing "real" system configs from remote.

Usage

Warning: The created USB stick is destructive in the sense that it deletes everything on the disk without asking!

  1. Edit configuration/configuration.nix
  • hostname
  • keyboard layout
  • password
  • uncomment user apps.
  • nixos channel "if needed"
  1. Build the ISO image via nix --extra-experimental-features 'flakes nix-command' build
  2. dd the ISO image over a USB stick
  3. Put the USB stick into a machine that is set up to boot via USB
  4. Let the machine boot and wait until it powers off again. (It typically takes ~5 minutes)
  5. NixOS is now installed. Just SSH into it.

Install in VM for testing

Run nix --extra-experimental-features 'flakes nix-command' build .#install-demo && ./result

Installation Scheme

The installer partitions the disk like this:

  • 512 MiB fat32 boot partition
  • 2 GiB swap partition
  • rest size xfs nixos partition

The default user is 'vincent' and the default password is 'password'