Home Server

Keywords: #computer #network

I found this blog post on using a laptop as a home server interesting.

But I’ve wandered in a different direction

Problems

I’ve done a variety of things as my “home server”. I started with my desktop before current. Then I went with leftover cheap desktops. Then I went with what the author described: an old laptop.

All had the same ultimate issues:

  1. They ate power
  2. They made noise

Even with the old PCs, I would always have a fanless video card. But inevitably the CPU fan get gunked up and it requires maintenance as the author mentions.

Shrinking Use Case

Also my needs shrunk over time. I started storing music and later video to stream at home. But then Spotify, Netflix, and 3 other streaming services later, that’s silly.

I still have my records and a few CDs that are too rare for streaming. I just use those when I feel the need.

I kept backups of photos on it. RAID 1, with the photos always on my primary PC. But now I take pictures with my phone and iCloud. I just don’t think about it anymore.

I ran my own web & mail server. But even with paying for static IPs my mail server became harder and harder to maintain. I’d end up in blocklists because my IP range was in “consumer” internet. DKIM, etc. was a pain. DIY web UIs stunk.

I eventually just paid for Google for my little domain, and use Netlify + Github for this content you’re reading.

What’s left

Monitoring and management of my network gear.

So I use a RockPro64 with an old SATA SSD for InfluxDB and run Grafana there. I have Telegraf running on a Raspberry Pi Zero I use for a Ubiquiti management thingy, and also run nut on it to monitor my TrippLite UPS.

I have my Netgate appliance sending metrics to it as well.

As I note often, I’m usually playing with Raspberry Pis or whatever and environmental sensors. Feeding metrics to Telegraf is super easy.

My wins

  1. Less Power used than my kids tablets.
  2. 0 fans.

Maintenance

Now this does add a little extra maintenance overhead. Instead of 1 server, I now run ~3 at a time. No physical work, but more systems to maintain.

But that’s a skill set I have. I’m used to managing 10,000s of servers. 3-5 ain’t bad and lets me get more detailed and prescriptive.

I manage the config (services, config files, etc.) with Ansible.

After that, it’s just keeping up with updates. That is super painful with Ansible, waiting on all the things just for apt update && apt upgrade or whatever. Even when I async all the tasks, it’s just a lot.

For now it’s just ye olde ssh. But I have been playing with writing a messaging based client-server (so no host “registration”) to manage that in Go with NATS. Way overkill, but it was mostly an excuse to learn. I have the client and REST service done. I need to do the UI but put that off because I hate front ends. Maybe I’ll finish.