I’ve started to play with Dreamcompute (basically Dreamhost’s unmanaged VPS solution). The plan is to move my sites from shared hosting over to that before my next shared hosting bill is due. It will actually be a little cheaper than shared if I can manage with 1GB RAM.
Right now I’m working out the provisioning part. I don’t have much experience with doing that via code / configuration, but I’d like to have a reproducible setup, ideally that can easily run in a local VM and remotely. The LetsEncrypt is my biggest worry, getting it right without certificate errors or significant downtime.