Is it possible/reasonably straightforward to do the same for a home machine? Are there any helpful resources for how to do this? I have a 3 year old dell desktop gathering dust with 8gb RAM/256GB SSD that I hoping to use to set up a shiny server so I don't have to worry about monthly costs.
I'm a relatively novice linux user, but I don't mind tinkering and if I ruin the computer in the process...well now I still have a 3 year old dell desktop gathering dust.
The same guide still applies to a home server as long as it has Ubuntu Server installed on it, you just have to skip the part where he creates the "droplet" and start from step 3.
Some things to consider when self hosting are:
The electricity cost, depending on how expensive electricity is in your area, it might make more sense to just pay for a cloud service.
How important availability is for your application, since you are in charge of physically maintaining the server and comercial grade computers are not designed for 24/7 operation so you have to account for interruptions when things fail and you have to repair them.
How much traffic you are going to be handling, since you have to procure sufficient internet band and processing power to handle it (with their corresponding costs).
For simple use cases with few concurrent users, self hosting makes sense (I even do it with a Raspberry Pi SBC) but if you need to scale up, cloud services are usually the better option.
The Raspberry Pi 4B consumes between 2.8 to 4 KWh per month (very cheap) but it can be a little higher depending on the load and connected peripherals.
BTW, I forgot to mention one important difference with regards to self hosting. You have to make sure you have a public IP assigned to your home router and configure port forwarding on it to redirect incoming traffic towards your server, also if your ISP doesn't assign you a static public IP (which is often the case for home services) you have to update the IP your domain (web address) points to every time it changes by using a DDNS service like noip for example.
If you decide to go the Raspberry Pi way, let me know, I have some useful resources for that in my blog.