Remix.run Logo
▲ turtlebits 18 hours ago

Running all these services without a declarative/standard way of deployment, ie docker compose or k3s/k8s is a bit mind boggling to me.

I self host on a bunch of different hardware, OSes, providers. I want the least fiddling as possible.

▲steezeburger 12 hours ago | parent | next [-]

It's been really interesting seeing the divide in the comments! I have a completely different philosophy from the OP on how to self host haha, and it comes from not wanting to fiddle with my server all the time! But they say our ci/cd is fiddly! The whole point of it is to NOT be fiddly! People gotta start figuring out how things work instead of throwing spaghetti at the wall.

▲ravenstine 15 hours ago | parent | prev | next [-]

In my experience, when something involves words like "declarative", "deployment", "docker", "k8s", that's a sign that it will actually involve more fiddling rather than less. But that's just me.

▲steezeburger 13 hours ago | parent | next [-]

I'm running like 10 services on a VPS. I'm a professional software engineer. Do you think I want to ssh into my server and find a bunch of single binaries all over the place to run them? What if a service stops, how do you automatically restart it? 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? Gonna ssh into the server and pull down your repo and build the app and run it?

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.

▲OroPla 5 hours ago | parent | next [-]

What benefit does k8s introduce in a home server? I currently have about a dozen services, but only use docker compose and a bit of shell scripting.

▲skydhash 4 hours ago | parent | prev | next [-]

I have a single home server (debian on an old mac mini) and this thing is like my router. Power on and just wait. Jellyfin and other stuff are taken care off by apt upgrade. I don’t usually bother upgrading the others unless they fail due to dependency updates (which only happened once).

▲ravenstine 10 hours ago | parent | prev [-]

> Do you run like 1 app on your home server?

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.

▲steezeburger 19 minutes ago | parent [-]

How is it a waste of time to health check your self hosted services? I use these services. I need them to work and be available. Bookmark manager, media server, my note taking app, a book server for friends, a few Discord bots I run, I've ran long running game servers for friends and a couple of little apps, home automation with CV ran on premise. We're obviously doing different things and have different priorities, but you can't act like k8s and docker are overkill and fiddly simply because you haven't found a need for them yet. Imo it is a huge pain the ass to manage this stuff without good iac. It's never been easier to implement something that makes my life easier. Seems like an obvious choice when you reach a certain scale.

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.

▲darkwater 5 hours ago | parent | prev | next [-]

That was the case 10 years ago, maybe even 5. But nowadays the API is mature enough, tooling is good enough and every LLM out there know about them enough to not be a problem anymore.

▲turtlebits 15 hours ago | parent | prev [-]

Noone builds anything without a vision of what it will look like. Blueprints are declarative specs. Why bother with instructions if you dont need to?

Many projects, like Immich, only provide docs for docker images/compose deployment.

▲threecheese 17 hours ago | parent | prev | next [-]

Pets are OK sometimes! They do need care and feeding, though; some of us don't see that as chores, instead delightful hobbies. I can definitely see the perspective of "there are better things to do", especially if you don't like those things.

▲turtlebits 15 hours ago | parent | next [-]

Pets are totally fine if you consistency/reliability arent that important. Homelabs can be fun ;)

▲swiftcoder 9 hours ago | parent | next [-]

> if consistency/reliability aren't that important

I've administered linux systems with uptime longer than docker has existed. consistency/reliability is perfectly achievable with without modern containerisation

▲steezeburger 11 hours ago | parent | prev [-]

I mean I'm not self hosting my password manager like this guy, but my self hosted services have better uptime than github actions

▲usefulcat 15 hours ago | parent | prev | next [-]

28 is a lot of pets.

▲surgical_fire 16 hours ago | parent | prev [-]

There is something satisfying in handling a home server as cattle though!

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

▲viceconsole 12 hours ago | parent | prev | next [-]

Do you not consider systemd services to be declarative/standard?

▲turtlebits an hour ago | parent | next [-]

Systemd is declarative runtime, but doesn't handle the deployment spec.

▲steezeburger 11 hours ago | parent | prev [-]

How do you declare the dependencies though? The unit file only covers starting the process.

▲binarin 8 hours ago | parent [-]

NixOS?

▲seabrookmx 13 hours ago | parent | prev | next [-]

I agree. But you could easily automate the systemd/podman based setup the OP has using ansible, if you wanted a declarative approach using OP's tools.

For my part, my home server is a single compose file :shrug:

▲bengalister 9 hours ago | parent | prev | next [-]

With NixOS you get the declarative approach.

▲jauntywundrkind 18 hours ago | parent | prev | next [-]

Especially now when you can snap your fingers and get a semi responsible codified version. Heck just do what you want to them ask the LLM to port your work to something marginally better than a totally hand cobbled bucket of bits system.

▲qwerpy 17 hours ago | parent [-]

That’s what I’ve been doing. Managing this stuff by hand is awful and I’m not a sysadmin who is good at it. I just added single sign on to my home network for a wide variety of various services. Some of them didn’t even support SSO but a quick AI patch fixed that. There is no way I would even attempt that by hand let alone succeed.

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.

▲steezeburger 11 hours ago | parent [-]

I see people say the same things in threads discussing open source agent harness repos that are MIT licensed. I don't understand how it isn't obvious to them at that point haha. I don't think people realize they can just... do whatever they want to

▲tonymet 10 hours ago | parent | prev [-]

midwit meme where caveman & wizard are editing files and midwit man is writing terraforms.