|I host most of my external apps on Linode.
You basically get a VM to do with as you please, the cost is about $20 per month for the lowest offering which is plenty powerful enough to run a few dotnet core apps with PostgreSQL as a DB and nginx as the front end proxy.
You get 3TB monthly allowance, and if you run over it's a pay as you use model at something like 1c for every 1000mb you go over...
I generally run Ubuntu on the ones I set up, what I tend to do is build a VM inside my own DC with the same specs as the linode, furnish said VM with Jenkins, dotnet core and nginx.
I then set Jenkins up to check my git server, and every time I check in, Jenkins builds and deploys the dotnet core app to the same VM, one I'm happy the built one's working I manually run the second job on jenkins which takes the deployed service pushes it to a separate GIT server, that the Linode VM is monitoring, when it sees a new build, it pulls that ready built to the linode, and deploys it.
With this process, I can basically check a change in on my desktop using visual studio, wait a couple of minutes, validate the build on staging, then click a button in a web page and it's live in about 5 mins.
I can go from VS to live usually in about 30 mins.