I have a spare computer at home that’s quite powerful (16core Ryzen, 64gb ram, NVMe SSDs)<p>I was thinking of using it as a web server for my side projects. And if a project gets some traction I’ll move it to DigitalOcean or Heroku first thing.<p>Does that kind of setup make sense at all? What should I know before I begin?
What you need to know:<p>Once you get past the lamers-following-scripts "customer service" reps, it's surprisingly easy to get a static IP, even a static IPv6 address, from major ISPs. I haven't done this with Comcast, but Centurylink was easy. You may have to buy "business class" service. Comcast will want you to run their router so they can have yet another "Xfinity" wireless access point leeching off your bandwith to them.<p>You have to pay extra for DNS, which always seems odd to me, like it's a scam for domain name registrars to make extra money.<p>Your machine will be probed mercilessly. Nearly 100% of SMTP traffic is spam. Way more than half of HTTP traffic is bots. Put ssh on something other than port 22, put a honey pot or tar pit (endlessh is good) on port 22. Occasionally you'll get DDoSed for no reason you can figure out.
Sounds like a good candidate for qemu/kvm or libvirt+kvm + (ovirt or virtmanager) then I would intall a kubernetes cluster+ docker top of it using kubespray with 5 small nodes something like 2cpu/4GBram and a large master with stacked etcd. As you could imagine this might consume time and requires area of interest, even you can install kubernetes straight, so I would try to script process as much as I could, take snapshot of images that in future you will not need to deal with it anymore. Otherwise when something goes wrong you will be lazy to re-install everything. Actually this is what I am going to do this week.
You'll probably find that your home-connection is asymetrical, meaning you can can download "fast" and upload "slowly" at home. That same asymmetry will be present in reverse for your visitors.<p>If you ignore the issue of speed, and reliability, it should work just fine. But honestly it is probably better to host elsewhere. A single cheap VM could host 20+ websites/projects so incrementally adding another is essentially free.<p>Having offsite backups, monitoring, etc. Would be a lot easier to achieve with a commercial provider.
I have a dual core box running a web test environment, gitlab-ce and Plex. I schedule a weekly reboot and all is grand. The box does 60w under load to give an idea of max cost to run.<p>I use duckdns to deal with my broadband providers DHCP.<p>I use the same type of containers in test as live and just git push between them. Live is a cloud server with a bare git repo which checks out files to a public folder on receive.<p>Although my box is 10yrs old it has an hp remote control feature. Saves me getting out the loft ladder :-)
If you can spare $5/Month, get a $5 Digitalocean VPS and focus on the side project. The hassle of setting up a home server won't be worth it both in terms of time and even possibly money regardless of the hardware you have.
Using such a big machine for running a home server is wasteful I'd say. Also, exactly why do you want to use a home server? It's definitely not the easiest nor cheapest setup.
use a raspberry pi for your webserver. save the big iron for anything that won't run on the pi; and get free "nose rubbed in it" lessons on what really needs to be done on what part of "backend".<p>having a httpd covering file shares is so useful for so many reasons like this that i would always recommend it.