Six months ago I posted here about the NixOS setup I built for the 30-PC computer lab where I teach.
At the time, it worked well for me, but it was still very much my setup: tied to one lab, one network, and a lot of assumptions I had accumulated along the way.
Since then I've been trying to turn it into something other people could actually install, understand, and maintain.
Today I released Nixorium 2.1.
The idea is still simple:
- one NixOS machine acts as the controller
- the lab is described declaratively
- clients can be installed and updated over the LAN
- only the controller needs Internet access
- applications still run locally on each PC
- student environments return to a clean state between lessons
- machines can be replaced and brought back to the same configuration
A lot of the work since my original post has been on the less exciting parts: separating private site configuration from the reusable framework, safer installation flows, recovery from interrupted operations, backups, diagnostics, VM-based release validation, CI, and documentation.
I also made a short 1-minute explainer, because describing this only in Nix terminology makes it sound more complicated than it is:
https://nixorium.org/
The source is here:
https://github.com/giovantenne/nixorium
One caveat I want to be clear about: Nixorium grew out of a real 30-PC lab, and I test releases in VMs, but hardware is hardware. Different firmware, NICs, switches and disk layouts can still expose things that virtual testing won't.
So now I'm especially interested in real-world feedback.
If you run a homelab, classroom, training room, makerspace, or just have a couple of disposable machines around, I'd be very interested to hear:
- what would stop you from trying this?
- which parts of the deployment/recovery story still feel unclear?
- what would you want to see before trusting it on real hardware?
And if anyone actually tries it on hardware different from mine, even a failed attempt would be genuinely useful feedback.
For context, this was my original post from six months ago:
https://www.reddit.com/r/NixOS/comments/1rqtu0j/i_built_a_reproducible_nixos_deployment_system/
-----
EDIT:
A lot of Nixorium is basically an attempt to automate and simplify the workflow I originally did by hand. If you're curious about where it started, the old v1 README from six months ago describes that setup and the manual steps much more directly:
https://github.com/giovantenne/nixorium/tree/11b87a9ca185b0d2a0f2f32bdd342dfba0677d55