I self host on a bunch of different hardware, OSes, providers. I want the least fiddling as possible.
I self host on a bunch of different hardware, OSes, providers. I want the least fiddling as possible.
Many projects, like Immich, only provide docs for docker images/compose deployment.
It takes like a day to figure out docker compose and like a week to figure out k8s at a level where you can get things done. Honestly, you can get something working now with LLMs and have them help you understand it in probably less time.
Of course I want a declarative deployment for my complex home server. Do you run like 1 app on your home server? It's not "fiddling" if you know how these things actually work.
I imagine it's more fiddly to figure out how to wire up all your individual services to Uptime Kuma and Homepage. You don't even need Uptime Kuma with docker compose, instead you just set a container restart policy and have a healthcheck endpoint.
I could just as well ask you why you need to be running 10 services at home.
> I'm a professional software engineer.
Good for you, mate.
> Do you think I want to ssh into my server
Clearly you don't, so why even make this a point? No one told you that you have to do it this way.
> What if a service stops, how do you automatically restart it?
It's called systemd, launchd, OpenRC, or any number of various mechanisms used to manage services and restart them.
> How would you automate creation of a qa environment when you create a PR on github so that you can test your changes before they go to prod?
No doubt, containers can be beneficial when deploying services exposed to the public. That doesn't mean a layer of complexity isn't added on top that one could consider "fiddling" when applied to the context of self-hosting.
I really hope you aren't orchestrating a QA environment just for software you run at home, unless that's truly your passion. I assume you were referring to what you do in your day job.
> Gonna ssh into the server and pull down your repo and build the app and run it?
As if all server software can only be installed that way without Docker containers. Even when that is the way, you're speaking like running a few commands is akin to landing astronauts on the Moon.
> It takes like a day to figure out docker compose and like a week to figure out k8s at a level where you can get things done.
Or I can just install the thing I want, make sure it binds to whatever port I need it to, and not need to think about docker-compose.yml.
> Of course I want a declarative deployment for my complex home server.
Then go ahead and do that. No one's stopping you, mate. I prefer to avoid that as much as I can because it's another thing to learn that, in all the years I've used Docker, rarely provided me that much benefit. I have zero interest in understanding the nuances of docker-compose.yml. (and yes, I am very familiar with it)
> It's not "fiddling" if you know how these things actually work.
Whoa, buddy. We already know you're a professional software engineer. No need to be punching down.
> You don't even need Uptime Kuma with docker compose,
You don't even need either of those things.
> instead you just set a container restart policy and have a healthcheck endpoint.
That's cool man. I don't care about any of that. Again, from my perspective, those are things I consider a waste of time for self-hosting. Especially the health check thing. More power to you if that's your style, but I have other priorities in life, and I'm not wrong for considering all these added technologies to result in more fiddling.
When I said I was a professional software engineer, I just meant that I have a lot of experience doing this stuff, so to set it up at home isn't really fiddly or cumbersome.
I use it when I need to deploy a service across multiple machines. For personal projects that's pretty much my biggest decider. Otherwise I'm using the same docker compose setup I've been using for a while!
At other times in my life I've ran Plex on a laptop in the corner with a note on it saying not to close it.
I have no issues with how someone wants to run their setup, I just took issue with saying they're fiddly. I guess they're fiddly when you fiddle with them haha.
I don't do it because I don't care; I do it because it is super satisfying when it has been boringly running for weeks without me doing anything to keep it up beyond paying the electricity bill, upgrades are extremely predictable, etc.
Boredom is a feature :D
I've administered linux systems with uptime longer than docker has existed. consistency/reliability is perfectly achievable with without modern containerisation
I saw statements to the effect of “this would be nice but it’s a lot of work” several times in the post. I don’t understand why that has to be a blocker anymore. All this tedium is gone.
For my part, my home server is a single compose file :shrug:
That's not really true anymore. I can understand why you might not be familiar with declaring systemd dependencies as it's a fairly new thing. Don't blink or you might miss it.
Check out the article[0] below, it just came out...in 2015.
[0] https://fedoramagazine.org/systemd-unit-dependencies-and-ord...
For complex stuff like Immich, I'll use podman. But these days with uv, even managing python services with systemd is fine.