NAS / NAS + server? Unraid, Proxmox, Intel, AMD? Looking for guidance.
In a few months, I will have the space and infrastructure to join the selfhost community. I'm trying to prepare, as I know it can be challenging, but I somehow ended up with more questions than answers.
For context, I want to run a server with torrents, media (plex, Jellyfin or something else entirely - I didn't make a decision yet), photos(Emmich, if its stable, or something else), Rook, Paperless, Home Assistant, Frigate, Adguard Home... Possibly lots more. Also, I will need storage - I'm planning for 3x18tb drives to begin with, but will certainly be adding more later.
My initial intention was to set up a NAS in Silverstone CS382(or Jonsbo N3/N5, if they're in a reasonable price). I heard good things about Unraid and it's capabilities of running docker. On the other hand, I'm hearing hood things about Proxmox or NixOS with NAS software running in a VM, too - but for Unraid, it seems hacky. Maybe I should run NAS and a separate server? That'd be more costly and seems like more work on maintenance with no real benefit. Maybe I should go with TrueNAS in a VM? If I don't do anything other than NAS, TrueNAS shouldn't be that hard to set up, right?
I'm also wondering whether I should go with Intel for QuickSync, AMD and Arc graphics or something else entirely. I've read that AV1 is getting popular, is AMD getting more support there? I will buy Intel if it's clearly the better option, but I'm team Red and would prefer AMD.
Also, could anyone with a non-technical SO tell me how do they find your selhosted things? I've read about Cloudflare Tunnels and Tailscale, which will be a breeze for me, but I gotta think about other users aswell.
That's another concern for me - am I correct in thinking Tailscale and Cloudflare Tunnels are all I need to access the server remotely? I will probably set up a PiKVM or the Risc one aswell, can it be exposed aswell? I will have a dream machine from Ubiqiti, anything that needs to run to access the server I may run there. I'm not looking to set up anything more complicated like Wireguard - it's too much.
For additional context, I'm a software developer, I know my way with Docker and the command line and I consider myself to be tech savvy, but I'm not looking to spend every weekend reading changelogs and doing manual updates. I want to have an upgrade path (that's why Im not going with Synology for example), but I also don't want to obsess over it. Money isn't much of an issue, I can spare 1-2k$ on the build, not including the drives.
Keep it as simple as possible to start with and then expand if you feel there is a need. No need for two servers. The first thing you should buy though is a book about basic network design and security if you're not familiar with it. It may feel like overkill now but future you will thank yourself.
As for the family in the same house... I try to make it as seamless as possible. Sometimes there is no need to tell them because the new service I set up integrates nicely with our devices. And sometimes I tell them "we have X now which does this, you can go to http://x.y.z.lan or use the app".
Some random and probably not very popular opinions.
I would check out eBay for used parts and find a decent motherboard with an IPMI interface. Find an appropriate case with good reviews if you're not gonna mount your server in a rack.
--
Install FreeBSD and use zfs in a raid configuration that fits you if you care about your data. Run all your services in separate jails and be done with it. You don't need Docker anyway for your private NAS.
--
Plex, Jellyfin, the *arr stack and a few other resource hogging services have a nice web ui but that's about it. Do you really, really, need transcoding and all the features? Set up NFS, DLNA or whatever and use whatever client you like. I can't access my Jellyfin library right now because the backend is apparently too old (wtf). Meanwhile VLC and a few other more fancy frontend clients with cover art, ratings and stuff works just fine accessing the same files over NFS. You don't have to run some convoluted bullshit and reinvent the wheel every time just because you can.
At least in the case of jellyfin, it's not exactly just a "resource hogging frontend".
For instance it keeps track of watch progress, in episode and through the series, and what did you watch last time so you can continue with whichever.
Allows you to remote control your player device (handy if it's a TV or something like that) from your phone or another anything with a web browser.
It fetches info about the movies and series so it looks nice and for your users it is easier to pick something for themselves.
It has integration for MPV (and probably a few other players) so it does all the above.
And it does all these things in a way that everything is available across all your devices. Not just the content, but watch progress and everything else.
Something tells me you also tell your family that a Linux computer with no desktop environment is all one needs for everyday tasks.
And finally for OP: you don't have to learn FreeBSD for ZFS, because Linux has it too. Because of licensing issues installation is a bit more complicated in most distros, but if you use Proxmox, they have done that part for you.
I can't access my Jellyfin library right now because the backend is apparently too old (wtf).
Are you using the binhex image by any chance? I had this same problem, just had to update it from the apps/community center page instead of from the docker page.
No, the FreeBSD version from the ports tree. Equivalent to installing a package in a Linux distribution from the built-in repo's.
I rarely use it anyway and I could just upgrade, but enforcing an update by disabling all functionality still feels a bit excessive. Makes me wonder if any other artificial restrictions have been imposed.