Side question, does anyone actually enjoy running a VPS? Between managing the sites on it, you have to maintain the VPS, keep it up to date, its prone to security bugs and flaws, etc. Am I missing something here? I remember setting up multiple VPSes on Linode / DO and it was always a painful process of installing the OS, installing the whole stack, configuring everything, setting up users / roles, firewalls, etc.
On top of that, whereas on a shared host i click a button and host a second domain, with a VPS I have to SSH in and manually edit server files.
But everyone always recommends running a VPS so I can't help but imagine I've either missed some magical tool that makes running a VPS a snap or it's just not a realistic solution for most people.
I don't think it's a question of "enjoy" versus "need". If you just doing some static hosting with perhaps PHP, sure, go with shared hosting. The second you need to run your own Java server, Go server, etc. you're in VPS territory.
On a basic level, shell scripts to do the basic config work in a pinch. But if you can learn the basics of Ansible, setting up a new VM can take just a few minutes and not be painful at all. It's quicker for me to add a new VM and apply a few Ansible roles I've written for a new client site/app than to log into some shared hosting provider and click through their UI to do the same.
I much prefer using NearlyFreeSpeech. I like being able to outsource the server management to them. Since my sites are static and largely cached by Cloudflare, I think I've paid them less than $10 for the last year's worth of service.
I know DO for instance has ['projects'](https://www.digitalocean.com/community/projects) – "apps, wrappers, and integrations
created by our developer community using the DigitalOcean API" – so you don't necessarily have to setup everything yourself.
But if you're configuring multiple nodes that are similar or the same you should definitely be using images. Setup one node, create an image of it, and then create new nodes from the image.
On top of that, whereas on a shared host i click a button and host a second domain, with a VPS I have to SSH in and manually edit server files.
But everyone always recommends running a VPS so I can't help but imagine I've either missed some magical tool that makes running a VPS a snap or it's just not a realistic solution for most people.