Alright… after waffling for a while on it, I think I’ve decided to actually go about a 1U server build to colo in a semi-local datacenter. This will replace almost all my cloud hosting, as well as providing the capability of offering some backup services for friends/family. As the internet seems like it’s heading off in a direction where distributed, federated services have gone from a novelty to what seems like a really darn good idea, and cloud providers are happily kicking people out of the entire hosting industry simultaneously, seems a thing to consider again. Even if I bloody well hate legacy sysadmin and was happy to be done with it… sigh
So, in no particular order, use cases for this server:
- Remote data backup. There’s stuff I’d like to keep mirrored remotely, and I expect other people I know wouldn’t mind some backup too. Years ago I created an rsync-hardlink-based backup rotation system, and will probably re-implement it if I can’t find something that does it already. Figure a few TB of storage for this.
- Hosting various services. Conversation would move over, as would my Matrix Synapse homeserver. These would get more RAM, and I could also more easily spin up some dev instances to mess with (I’m particularly interested in Dendrite as a Go based Matrix homeserver, should be an awful lot lighter to run than the Python-based Synapse, which is a heavy bloated pig). Several VMs for this.
- Hosting some church services, similarly in VMs. I’d like to move our church off Slack, and RocketChat integrates nicely with our stuff. I’m also hosting a Jitsi instance that still gets some use, and would be nice to have moved off DigitalOcean. They’ve got some funky jitter.
- Either being a video reflector or a video transcoder for livestreaming. In the simple case, reflecting a h.264 stream out to a few endpoints, in the more complex case doing some transcoding. See below for questions here.
- A general trusted point for VPN services to come in from mobile devices. I don’t trust first hops very much, though with the utter lack of travel, it’s been less of an issue.
- Assorted other services and traffic proxying that would make some use of bandwidth.
As I’m trying to de-Intel my life, because I don’t like what they’re doing and no longer trust their chips, this sort of stuff practically leaves me with AMD as an option. If ARM options meaningfully existed in my price range, I would consider one, but at this point, for a production server, I think x86 is still the right answer. AMD processors are fine, but do leave me without hardware transcoders…
I’m eyeballing this server:
It supports plenty of disk, and I could boot from a NVMe mirror, put some big disks in for bulk storage, and, if I wanted, some 2.5" drives for “large fast storage.” Or just some SATA SSDs for that purpose. Not sure if I need them or not.
The system supports a single height PCI expansion device, and here’s where I’m looking for some advice. If I could have a reasonably affordable hardware transcoding capable device in here, that would be awesome - but I can’t find very many single height devices that would fit (some of the “single slot GPUs” have a thicker cooler, and others don’t support hardware transcode). Does such a thing exist?
As for the main storage array, I’m planning on a set of 4 3.5" drives in RAID6, mostly because that gives me 2 drives worth of storage an awful lot of redundancy, including the ability to figure out which drive has glitched a sector during a regular array scan. I think. I like my RAID6 arrays, because they just work…
CPU and RAM: I’m probably stuck with the 3000 series Zen chips, because the 5000s just aren’t meaningfully available yet, and I’m not sure the increased CPU performance really matters for anything but the possible software transcoding. And even then, with enough cores, I’m probably fine…
Given that RAM is relatively cheap, I’ll either stuff 64GB or 128GB in, ECC, because… hey, RAM solves most known issues.
Any specific advice on disks? I know the new stuff is helium based, no idea if it’s any good or not…