Goldboot: Immutable infrastructure for the desktop
github.com
github.com
It supports using OCI (Docker) images as a base system. I've been running the KDE Spin, Kinoite, on my desktop and laptop recently and I'm really happy with it.
In Windows I use the built-in Deployment Image Servicing and Management (DISM) tools for this, manipulating the Windows Image .WIM files originally designed for NT6 from Windows Vista onward. With Vista, DISM did not yet exist, WIMs were handled by imagex.exe at the time.
>Warning: this tool is totally unfinshed and should be used for testing only! Proceed at your own risk!
Goldboot looks promising anyway. For Windows it could be benchmarked against DISM, or even the Wimboot tangent.
DISM was not perfect when it first appeared, but after over 10 years it is more well-tested and capable than ever.
You can autoingest a configuration file, but also quite easy to go pretty far just dropping commands from a text file into Powershell.
Here's a fairly good example, all of which may not be useful every day, but I do think every Windows person should be familiar with the one section "Capture a Custom Windows Image Using DISM". This is what you do once you have gotten the OS settings the way you want and have installed your needed apps. You may have already accomplished that much on your Windows PC. A WIM of that is really just a backup of your present "golden" image for future deployment or recovery:
https://woshub.com/create-custom-windows-image-preinstalled-...
You can redeploy the WIM file to an empty formatted partition using the DISM.exe /Apply-Image command.
Also, a couple other DISM users and how they utilize its capabilities:
https://matthewhard.com/windows-command-line-dism
https://4sysops.com/archives/create-a-customized-windows-10-...
In Windows Education or Enterprise versions you could also enable the Unified Write Filter which can discard all per-session changes rather than having them written to the disk. This may or may not be used to keep the golden image from allowing persistent changes once deployed.
Perhaps it would be a good idea if Goldboot included the ability to handlle WIM files itself, or especially to make viable WIM files from Linux installs.
Freedom!
I just mount my home as a persistent disk and it's truly wonderful.
It shouldn't be; the idea is to make it so little to no data actually gets written to that tmpfs (everything is in /nix, /persist, or /home), and it's only even present and not read-only in case you've missed something.
Or, they correctly understand exactly how the license works and intentionally choose something that's effectively impossible to use in anything proprietary (for some definition of "use in" that's probably less severe than you're implying, though IANAL).
> Either let the code be free or keep it proprietary rather than waffle or force unreasonable BS on users.
Correct; AGPL is 100% Free and a commendable choice. (Not that there's anything wrong with permissive licenses, but copyleft is also good.)
The result is that a lot of developers have had to sign contracts with their employers that say they'll never use or contribute to AGPL code even in their personal time. This is often reinforced by mandatory compliance training that repeats bogus nonsense about how if you ever run an AGPL program on your personal laptop you could turn the entire company codebase into GPL code. These myths then proliferate and end up driving other companies to do the same thing. It's all FUD of course, whether the people repeating it know that or not, but the practical consequences are that a lot of people legally cannot interact with AGPL projects at all. Again, that's not because the license is all that restrictive but because of what amounts to a universal corporate boycott.
What percentage of companies do you think impose these kinds of restrictions? From what I've seen, lots of small/medium tech places barely care about software licenses at all.
I'm assuming this is for user's machines, but wouldn't it make more sense to use a config management tool?
I'd have to agree. Immutable is great for headless server scenarios but I'd imagine it would be a huge headache as a daily driver for end-user desktop scenarios.