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’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.
Containerization is not virtualization, so why would it have any bearing on hardware transcoding?
Several comments specifically talked about VMs for the various apps. And frankly I’m not super familiar with the limitations of containerizing apps either. That’s part of why I was looking for an immutable os + flatpacks / snaps - it’s much more similar to a normal linux system just organized in a way to not break shit.
I found this guide for setting up GPU access for Unprivileged LXC containers when I googled around:
Giving a LXC guest GPU access allows you to use a GPU in a guest while it is still available for use in the host machine.
https://bookstack.swigg.net/books/linux/page/lxc-gpu-access
Talked about here:
https://old.reddit.com/r/Proxmox/comments/15zbjyl/proxmox_igpu_passthrough_to_multiple_lxc_plex/jxgn7pb/
Just use TrueNAS scale
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
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.
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.