← Back to context

Comment by Zetaphor

8 months ago

I'm starting to feel like the old man yelling at people to get off my lawn, but I don't understand why tools like this are desirable for something as critical as your infrastructure.

> Before that, I had only known pain. From renting a server, dockerizing, setting up a proxy, SSL certificates, monitoring—you name it!

Is this really so difficult? Especially in the age of docker I've never felt like deploying a new project was more straightforward. I have a handful of docker-compose files that I can copy-paste for any new project that get me spun up with a Node/Python server with LetsEncrypt SSL, optionally behind a reverse proxy. It takes me no more than 20 minutes to setup a new project which involves SSH'ing to the server, copying the files, and updating configs.

Why would I ever want to give up that level of control and reliability to saddle myself to a third party who does _magic_ to make my deployments happen? They can change their offering or their pricing at any time, and if I don't like it I now have to rip out all of their _proprietary magic_ in order to move to something more sensible.

I do think Coolify is an interesting exception as it's _self-hosted magic_, but that still leaves me with a single point of failure where I'm relying on someone else to make sure my backend keeps working. If your Coolify instance ever has a critical failure or your requirements are no longer compatible then you're right back to the same problem.

Am I out of touch? Are you really spinning up servers so frequently that this type of hard dependency is justified? Or are developers these days the ones who are out of touch (with their backend)?

In my experience the actual time is usually vastly underestimated. You might take 20 minutes if you've just setup an equivalent project, but otherwise you're gonna take a lot longer to get everything wired up, including https certs. And you're likely only thinking of deploying already existing images right now, so you'll have to add another hour or so to configure a ci/CD pipeline, a container registry, permissions etc. unless you're fine doing deploys/builds manually. Unless you configure a cronjob to poll for changes via git, but now you're still gonna have to ssh in to check if everything worked with the build/deploy.

Tools like Coolify streamline this process and give you a preconfigured template to get everything wired up from a git repository push event to a deployment on a docker-swarm cluster, with a shiny UI to configure env variables and check the terminal output of the container etc

I'm not sure what you'd consider magic here though, it's mostly just quality of life templates and a coherent UI so you don't have to execute various commands via ssh