I would think of Incus and Proxmox as equivalent - both can run containers and VMs. I like the idea of 3 incus servers each with a VM in Docker Swarm mode for running your docker services. Then if you have additional services that aren't a good fit for docker, you can spin them up as separate containers or VMs in incus as needed
garibaldi
This is what I would recommend too - QEMU + libvirt with Sanoid for automatic snapshot management. Incus is also a solid option too
I've been meaning to write a guide like this but haven't had a chance to complete it yet. In short, I'd recommend setting up an Ubuntu Server instance on some old hardware and using incus with ZFS to setup a separate container or VM for each service you want to run: https://linuxcontainers.org/incus/introduction/
This way, if something doesn't work out, you can just delete the container or VM. It also makes it easy to make snapshots or backups before you make a change (e.g. perform an upgrade) so you can easily roll back.
You can even try incus online (see the above link) to get an idea of how it works.
What about incus, the LXD fork, with the webui? Incus is so simple/logical for managing both VMs and containers (and you can run docker inside of them) and the webui lets you manage it from a browser if desired
I use Obsidian - it's phenomenal! https://avidandrew.com/elevate-your-note-taking-with-obsidian.html
Rather than a cheap VPS, what about hosting a reverse proxy on fly.io, something like this? https://github.com/AnimMouse/frp-flyapp
I'm self-hosting Obsidian as described below and it works really well. The syncing happens automatically in the background and I rarely encounter conflicts. I'd highly recommend it! https://avidandrew.com/elevate-your-note-taking-with-obsidian.html