Admittedly, it makes way more sense once you have more than one person in your household. I ended up running most things in docker on a Raspberry Pi 4.
Started with
- PiHole to cut down on ads and try to keep the kids from clicking malware links
- added network attached storage to make it easier to share files with the family
- added Jellyfin to share music with people in the house (kids gotta grow up listening to good music)
- added syncthing to be able to ditch dropbox and still keep multiple computer file folders synced
- ran a Minecraft server, then a Terraria server, then shut those down since we moved on to other games
- turned on an ntp server since ddwrt router wasn't getting the time from the internet reliably
- added librespeed and ittools for quick wifi-speed-testing and to convert docker-run commands to docker-compose commands
- needed a webpage with links to start keeping track of all of this, so lighttpd it is...
- smokeping and blip were fired up when the internet got flaky and I needed more data to explain to the ISP what I was seeing
- Got a 3D printer, and Octoprint made it easy to start and monitor prints without having to pull a microSD card out of the socket every time.
- Figured, while we're here, that I might as well explore the smart-home thing with HomeAssistant -- now we have a handful of lightbulbs and smart power switches that mean you don't have to get up to change the lights quite as often (not everything is on a smart control, just a few out-of-the-way things. Oh, yeah, handy during Christmas-time to turn the tree lights on and off without having to fumble behind the tree for the little switch.)
- That, of course, lead to an MQTT broker (mosquitto), which is kind of a budget pub-sub broker
- And now that I have docker logs with things I need to debug, Dozzle serves those logs in a handy webpage. Not secure, but it's not like this is enterprise server.
- Then I wanted to play around with timeseries data (just to learn), so (running out of RAM at this point, so I couldn't just fire up Grafana) kept digging until I found VictoriaMetrics, which was quite happy to catch metrics (fired at it from Benthos) and visualize some 3 years of hourly Beijing weather data. (Seriously, I'm still amazed how lightweight, simple, and easy to use VictoriaMetrics is)
- currently thinking of kicking the tires on the NATS message broker and see if I can get the multi-node clustering to work. No real purpose other than see what it's like and dream about silly developer projects.
- also thinking of exploring SeaweedFS -- might be nice to have horizontally scalable storage, as each of my nodes are scattered around the house depending on where I can put an Ethernet drop.
- after a few years going along this journey, it has the perk of having helped me get my current job, which is pretty cool.
So... it's mostly a plaything, a sandbox, but a handful of things run "in production" at home and make life around the house slightly more convenient and less risky. By being choosy with the software and a bit aggressive on the container RAM limits, I've got 27 containers running on a Raspberry Pi. Hey, gotta take my bragging rights somewhere.