I would totally start a side hustle if I was set up like this. I'd be thinking of a project where immediate ROI didn't matter, and I could take as long as I want before it produces an income.
NTP just tells you time. No confidential data here.
DHCP and SNMP dont go over the internet. A VPN won't save you from this.
FTP is dead. Not even web browsers support it anymore.
SSH is already encrypted. In some cases, it can literally be used as a VPN.
Wireshark is useless on WPA3. Although hotel wifi typically doesn't use it.
SNI is encrypted with ECH.
I disabled plaintext SMTP on my mail server years ago. Requiring TLS actually reduced spam by 99%. No reputable mail server will use plaintext.
Almost nothing uses plain HTTP. The only thing I typically see is my phone's internet connectivity check, which simply returns an HTTP 204 (No content). It's practically a ping.
HTTPS + DoH is enough because all of these problems are solved.
You're routing all your traffic through a single inspection point. They too can scrape anything that isn't HTTPS. They can list every site you visit without DoH.
Corporations are just as unaccountable as ISPs and governments.
I'm using bcache, and I'm using btrfs as the filesystem on top of it. I'm not sure that the way I've done it is considered best practice anymore. The discourse online is a mess because the landscape keeps evolving.
2 of my 4x 4TB spinning drives are portable. 2 in mirrored raid, and on-site backup, and an off-site backup. If you don't have it on 3 drives across two sites, you don't have it. 5400RPM is fine as long as you allocate some of that NVMe as a cache for it. Keep all high-transaction stuff like databases, thumbnail caches and indexes on the NVMe drive. Going to 7200RPM just increases power consumption and noise, and reduces reliability.
The other specs seems fine, but I personally upgrade my desktop then take the old CPU, RAM and motherboard to use for my server.
Immich and Nextcloud run fine on my 2015 Core i5 with 16GB RAM.
As a dev, I usually have a good idea of what my change may "touch". I write detailed notes for testers. I fixed a dropdown box glitch this week, and I had to mention the one other dropdown that called this particular function in a place you wouldn't expect.
We're told to make changes that "touch" as little as possible. Obviously because this stuff is a nightmare to test for regressions.
If you're looking to avoid burning tokens, perhaps just learn to code.