I can say that Semaphor.dk has a NixOS-based distro, inalis.dk (I don’t think their source code is publicly available, though) that they run in their own small company and are trying to sell to Danish public sector.
I haven’t explored commercial fleet management deeply, but they’re called Red Hat Satellite, SUSE Multi-Linux Manager, Canonical’s Landscape. There’s frameworks for doing fleet automation that feel less like complete products and could be replaced with Nix; SaltStack, Puppet Enterprise. Then there’s FleetDM.
I went and looked into my current employer’s requirements for running NixOS on developer machines and this is primarily guided by wording in ISAE 3000 wrt. fleet control using Windows, BitLocker and Intune: It should be possible to install software, force updates and reset laptops remotely.
For larger fleets, zero-click installation via a USB installer and some kind of centralised policy engine is preferred.
I think the ideal incubation environment for this type of project is a public sector institution that has planned to boldly quit their Microsoft renewal and transition to something in the works that they need to support internally. Possibly collaborating with consultants, but owned by the institution.
And I think an open source community circling around that effort is essential, too. Unfortunately, companies are terrible at open sourcing and working in public on community terms. I’m not sure how to best anticipate such tension.
In short, I think the success of such a product is best led by product ownership.
I agree, the community support will be essential for this kind of project.
And yes, there are tools that kinda does these things, but are spread out and for IT admins, it introduces a logistical nightmare.
As for larger fleets, i was thinking of a single USB image containing a “golden image” - a barebones NixOS with my enforcer running. It then registers the machine with central server and pulls specific flake for that group (Finance, Logistics, etc…) and forces a rebuild of a system…
I would imagine fleet management is inherently for IT departments? As for golden images: Having been into functional programming for a decade, I find this article inspirational:
What I gather is that statically declared systems like NixOS / Terraform that say “the system is like this until the description changes” cannot account for dynamic changes (drift) inevitable in a fleet.
You might start off with an image that gets you connected to the fleet; but from there you need perpetual convergence, and you can expect almost arbitrary drift (machine that come and go with much differently configured software years apart.)
Yes, its mostly for IT departments. As for drift, there should be none, as enforcer will run as a system service and make sure the system is up to specs…
If it detects a drift, reboots the system into known good configuration (maybe depending on drift severity or something) or notifies IT department and they decide what to do with device.
Programming language culture treats a program as a single thing. You write it, you compile it, you deploy it. The old version ceases to exist and the new version takes its place. The type system operates on this model. The module system operates on it. Your mental model of “the code” operates on it.
In production, this is a polite fiction.
In any non-trivial deployment, multiple versions of your code are running simultaneously. A rolling deploy means that for some window (seconds, minutes, sometimes hours) both old and new versions are live, serving the same users, blissfully unaware of each other. A blue-green deploy means both exist and traffic could be routed to either. Canary deploys mean both are serving real users, right now, at the same time.
The article proceeds to talk about how Erlang/OTP is the one mainstream platform that took this problem seriously at the language level: its VM supports running exactly two versions of a module simultaneously during hot upgrades.
I don’t think fleet management has this luxury.
Keeping a fleet in sync is a very interesting distributed problem that I’d very much like to take part in solving.
Considering their initial fleet of 250 machines across two machine types (one for IT admins, one for general users), I bet they have fleet management in consideration.
Okay, look, I’m not really an anti-AI guy (post history proves that), but I’m very much a don’t waste the community’s time guy.
You just made your account (4 days old), your post looks like slop and has broken markdown, and you’re basically asking us to workshop your idea (which sounds suspiciously business oriented…“open core” or not) for you without any other activity here.
This exact idea has been on my mind, and my approach so far has been to talk to people offline about the idea. Posting here without anything to show felt like it wouldn’t increase the odds of manifesting it. But as it turns out, it does, since there are attempts out there I didn’t know about.
Slop or not, this is a great time to have a talk about NixOS-based fleet management.
I am sorry you feel like i am wasting people time…
Yes, i am new to Nix and this was something i talked about with AI, trying to get my reasoning in check…
I am not trying to waste anyone time, i just wanted idea validation. I am not asking to write the project for me and, i was just asking for idea validation from people that use these systems on daily basis….
I am sorry if i offended somebody, that was not my intention.