Also, using ECC still poses a data corruption risk.
There is always a chance of something going wrong.
That said, AMD does ECC on their consumer cheap CPUs and you don’t need the fastest ram for a storage server. (It’s much faster than HDDs anyway) - slow unbuffered ECC isn’t that much more expensive than slow unbuffered non-ECC, you might as well go for it.
Wouldn’t bother with epyc, but would go with either atx or micro ATX, just so you get a pcie slot for a 10gig or 40gig nic.
Wouldn’t go with ancient (less than Skylake) Xeons – too power hungry and slow and bulky and usually not good value for money compared to a lot more modern AM4 ryzen.
For storage, for home use, I’d go smaller, 2 to 4 drives in raid 1 or raid 10 (of course with checksums and using copy on write, something like btrfs maybe).
10-14T per drive of spinning rust, m.2 flash for the os.
Regular sata on board should be fine, sata Is slow anyway, HBAs cost money and you’d just be using the in jbod mode anyway … a year down the road that HBA will become just another thing that can go wrong during an update and will net you zero benefit.
I wouldn’t care whether they’re SMR or not, access times just simply don’t matter as much for the use case.
On the software side of things,
Filesystem: btrfs is easier and more flexible than ZFS, ZFS is older and more widespread. With btrfs you can convert raid levels in place (2 copies of data across 5 drives if your want, for example, or raid 10 to raid 5). With ZFS you’re stuck with your drive layout and can only swap a drive for a bigger drive.
By all means go with zfs - there’s a lot more resources for it online it’s vastly more popular.
For OS. I’d go with regular Debian based server install, but switch it to “testing” repos, so that it becomes a rolling release Debian that I can update when I feel like, without ever being stuck on ancient versions of anything.
If you use ZFS, make sure you stick to LTS kernels (whatever the distro). ZFS really expects to be paired with a kernel version that it’s running on, and as awesome stuff like dkms and friends is… better to avoid having to use it altogether.
Client side backup software:
… no idea … I mean, for a developer it’d be possible to whip up your own that just snapshots the client filesystems (using shadow copy service or whatever there’s for that on re fs) and just rsync everything over to a samba share…
That’s pretty much what all of the good backup softwares do more or less.
There’s probably a solution.
For media:
minidlna works great, all the decoding would be done by your TV.
Plex is ok except if you want to do anything with hdr other than just subtitles, it’s regularly buggy. And any kind of transcoding requires a subscription and an nvidia card to do at a decent bitrate, … or other contortions. Generally it’s ok to just cast plex to a Chromecast ultra and watch HDR blurays that way.
Jellyfin… never got it to work well (once I had to dig into it to figure out why it wasn’t working and saw c# and just gave up… someone else can fix whatever was wrong)
Kodi on the client, with mounted files over the network: