We only tend to play a few days a week for a few hours, so I built a Discord bot that allows us to spin up the server on-demand. It runs until everyone leaves it and then auto-stops after 15 minutes.
It's built on top of Hetzner - it snapshots the full server state and deletes it on stop, then recreates it from the snapshot when needed. The setup is a bit slow, but pretty simple and cost-effective.
Disclaimer: I mostly vibe coded it with Claude, but it's simple enough for it not to be a big concern IMO.