I’ve been slowly moving along in this self-hosting journey and now have a number of services that I regularly use and depend on. Of course I’m backing things up, but I also still worry about screwing up my server and having to rollback/rebuild/fix whatever got messed up.
I’m just curious, for those of you with home labs, do you use a testing environment of some kind or do you just push whatever your working on straight to "production
- edit: grammar
In my job? Yes.
At home? God no.
I make sure I can recover data when things go wrong, but otherwise my recovery path is redeploying quickly.
Sir, every professional developer knows there’s never time and people to maintain the testing environment so testing is done in production! That testing environment you’re dreaming of is missed shareholder value.
Most importantly - the time and people = money.
My last job had a dev, UAT, and prod environments because they knew it was important enough to the business to pay for them.
I dont pay me anything for running my home environment - so, there is only production. And lots of backups.
At work we have 6 environments other than production. At home just one. I created a way to ease deployment of the environment from scratch using a k0sctl config and argocd and the data gets backed up regularly if I need to restore that, too.
I manage all my homelab infra stuff via ansible and run services via kubenetes. All the ansible playbooks are in git, so I can roll back if I screw something up, and I test it on a sacrificial VM first when I can. Running services in kubenetes means I can spin up new instances and test them before putting them live.
Working like that makes it all a lot more relaxing as I can be confident in my changes, and back them out if I still get it wrong.
Nope. I fiddle until it does what I want. If the thing I’m working on is complex or I’m struggling with it I’ll keep versions of configs. And I back up working configs via an rsync job. Which isn’t a particularly robust solution but I’m content with it for my needs.