Edit2: OK Per feedback I am going to have a dedicated external NAS and a separate homeserver. The NAS will probably run TrueNAS. The homeserver will use an immutable os like fedora silverblue. I am doing a dedicated NAS because it can be good at doing one thing - serving files and making backups. Then my homeserver can be good at doing whatever I want it to do without accidentally torching my data.
I haven’t found any good information on which distro to use for the NAS I am building. Sure, there are a few out there. But as far as I can tell, none are immutable and that seems to be the new thing for long term durability.
Edit: One requirement is it will run a media server with hardware transcoding. I’m not quite sure if I can containerize jellyfin and still easily hardware transcode without a more expensive processor that supports hyper-v.
I use NixOS for this. It works wonderfully.
Immutable means different things to different people, but to me:
- Different programs don’t conflict with each other.
- My entire server config is stored in a versioned Git repo.
- I can rollback OS updates trivially and pick which base OS version I want to use.
As of my understanding, immutable systems are useful for Devices that are more bound to change, like a Desktop you actually use to install programs try out things and so on.
I do not see much benefit here for a stable server system. If you are worried about stability and uptime, a testing system does a better job here, IMHO.
Immutable systems are useful for separating the system and application layers and to enable clean and easy rollbacks. On servers the applications are often already separated anyway through the use of container technologies. So having atomic system updates could enable faster and less risky security patching without changing anything about how applications are handled.
“just buy another server”
my other server is a cloud tho
Would Truenas fit as immutable? I guess it doesn’t stop you from changing things, but doing so might break the next update.
Configuration can be exported. Disaster resolution of fresh install and restore configuration has worked for me. No data loss and even the Virtual Machines started right back up.
One could argue that they do “try to stop you”… technically… by disabling the execute bit on software update tools (like apt & deb)… but I see that more as a gentle reminder and acknowledgement of your ownership of the machine, as they could have easy just not had those tools present at all.
MicroOS from OpenSUSE. nice thing is initial config at boot is similar to nix config where you can set everything like network, user, passwords, installed packages, etc. this is done via ignition and combuation files. Has a handy file creator to make life . https://opensuse.github.io/fuel-ignition/edit
Flatcar linux (this is what I use for my NAS/homeserver) and CoreOS are both good.
edit: OpenSUSE has microOS: https://microos.opensuse.org/
github.com/secureblue/secureblue
It has a server variant!
I find it easier to use than CoreOS as I never dealt with learning how to use this ignite thing. And also they are hardened, which is important especially for servers.
Oh I like the look of that.
It works great, after dealing with lots of the opinionated stuff, adding a userns variant, making Flatpaks work, disabling CUPS instead of removing it etc it is now very usable on the Desktop.
Server should just be as good. Use Podman for containers, installing Docker will weaken the security I guess.
I’m using Unraid, which is built on top of Slackware. It has a very nice Docker web UI for apps like Jellyfin. It’s not immutable though. I don’t know of any NAS-specific OSes that are immutable.
deleted by creator
Typically on a home server you would virtualize services anyway so it really doesn’t matter what distro is running on the metal.
And also if you’re fully virtualized you can switch out the host distro anytime you want, so you can adopt an immutable one later if you want.
Why do you want an immutable distro anyway?
I want immutability because I come from a the debian world where everything just works. But I want the benefits of using modern versions of packages.





