New Home Server
Had a bit of a home networking collapse a couple of months ago when I finally accepted the inadequacy of the now-12-year-old computer I was using as the "service-box" for my home network setup (*arr stuff, jellyfin, anything that required more grunt than a dedicated NAS and wasn't directly storage intensive) and gave it the proverbial Do Not Resuscitate badge - I backed up everything I could think of and waited for it to fall over again.
About a week later it fell over, I gave a little salute, and went shopping for a replacement machine. I was compelled by the various mini-PC options as I'd sort of honed in on a particular set of needs by learning on my old machine - I wanted decent video transcoding performance, moderate RAM, and the ability to run on low wattage most of the time. I settled on a GMKTec M8, mostly because it was at a decent price and had 16GB of memory in the current climate for barely £300, which seemed absurd.
I also used this opportunity to finally ditch TrueNAS - given it's not actually the storage management machine, proper NAS infra just seemed overkill. I tinkered with a bunch of different options but eventually fell on the super basic vanilla option of Ubuntu Server, and honestly that was the biggest improvement over the old setup.
I really rate TrueNAS for its main purpose - managing and securing network storage, with the ability to run containers on top of it - but at this point I have a dedicated NAS running its vendor's happily in another room, so I could thin it down and go to a machine that let me just SSH in and break shit if I want.
I had been using dockge on TrueNAS to manage all my containers, so all I really had to do was put it on Ubuntu Server (took 5 minutes), mount my NAS share to it (5 minutes), copy the backed up stacks and configs over (10 minutes) and assign some environment variables with the common paths I used in many of the compose files and I was basically back up and running. I made some fuckups along the way in backing it up, but nothing unrecoverable, and by the end of a genuinely fun afternoon I had either recovered or replicated my entire stack and added some new components.
I'm by no means good at this stuff - I'm the definitional example for "knows enough to be dangerous" - but I am getting pretty comfortable with seeing a problem and figuring out what a solution might look like before I start googling. At this point I feel confident saying that I could get this setup together without the aid of backups in a couple of hours.
The actual setup is useful enough that I thought I'd outline it here, in case someone is interested in what's actually useful to a capable idiot:
Dockge
Kind of the GOAT of the whole procedure, just because it let me learn how to use docker compose without expecting me to manage files myself - it operates as a really thin middle-man between the user and docker, providing just enough structure and feedback to make basic troubleshooting via logs and the shell feasible.
Dockhand
Could easily be my main way to do compose work via its Stacks interface, but I still appreciate the simplicity of Dockge for that - sometimes more information is worse. I've tried Portainer in the past but hated the experience, even after getting training on using it at work, so the promises of Dockhand had me apprehensive that it'd be the same feature-soup, but it's honestly very clean and simple in its design, it just does a lot of stuff.
I can easily manage resource allocations, access logs and shells, and add/view env variables in an interface that expects some amount of parallel working - something Dockge is really weak on. Once a container is working, I mostly interact with it in Dockhand.
Pihole
A bit passé at this point, but I set up pihole as my DNS more to give myself local domains (so when at home I can go to freshrss.hoose rather than 192.168.x.x:8080 or some such) but at that point the ad-blocking is basically free, and I have to say it's worth making the jump. I tested using it solely as the DNS for the host machine and my own personal PC, but I've since made it the default for my whole network with Cloudflare (1.1.1.1) as a fallback - flawless so far.
Tailscale
I won't wax too lyrical about Tailscale because I don't use it properly, or very thoroughly, but it is still a very useful way to allow communication between trusted devices without requiring them to be on the same network or opening them up to the public internet. A lot of people rave about it and its many applications, and I have found it useful, so I couldn't omit it from the list but I'm not going to claim any great insight.
I have some future goals for this machine, but before any of that I probably want to set up a properly robust mirror of the important files in case it ever gets nuked - I don't plan to store anything vital on it, but it'd be nice to not be forced to start from scratch.
I'd like to open it up to the internet so I can use it to give very limited access to some friends for self-hosted applications - the sorts of things where I don't trust them enough to invite them into my Tailscale network, but absolutely don't mind letting them login to a Foundry TTRPG instance. I'm not super up on how to do all that safely, but initial experiments have been positive. The backup comes first though before a random probing bot worms its way in and tries to steal my shit or something, idk how this works.