Amazon, Microsoft and Google control too much of the Internet. If you're an employed web engineer chances are almost 100% that you're renting web hosting services from one or more of these companies at work. You will own nothing and be happy (at work)! But at home you have choice over where you host your web presence. If you have personal sites or side projects, you may want to consider self-hosting these on your home computer. It's easy, free, and fun. You will learn a lot by being your own sysadmin, and I'll show you how.
In this guide I'll explain how to deploy your Node.js web app to a web server virtual machine (VM) running on a computer that you control. Our methodology will be configuring the Server VM to a "blank slate" status with network access, and then using Ansible over ssh to completely automate the process of installing and configuring your web project. For this to work you just need the following:
- An Internet Service Provider that can assign you a Static IP address
- A router that can do port forwarding
- A computer that stays awake and connected to the Internet
If this sounds intriguing, read on and I'll show you how deep the rabbit-hole goes.