Thanks for the congratulations I appreciate it :)
I will be hosting them from my home network -- I think there is a bit of a misunderstanding.
The reason why most people use VPS or web-hosting is because in order to deploy a server you need a forwarded DHCP configuration and a server to deploy something.
There are three main parts that we have to concern ourselves with here:
- The TLD name server
- The domain name server
- And our server itself.
The TLD server is the server that returns the nameserver address of your server whenever someone puts a TLD into a URL. A TLD is just the ending for a URL, an example of a TLD would be `.com`. There is a master `.com` TLD name server which administers names
So we don't have to worry about the TLD server, only our server and a nameserver to direct incoming domain requests to its IP.
A VPS or web-host takes care of our server itself and the domain name server for us. If we have a physical server, the only need we could have for a web-host is for DNS -- for example, Namecheap offers a DNS service for an extra fee alongside the purchase of their domains. In essence, what I am trying to explain to you is that I am the host because I own my own hardware I will be hosting myself.
With this considered, your curiosity on the differences can also begin to be satisfied:
- With your own hardware, you will have access to an entire computer and its hardware without limits.
- With your own hardware, the service runs on your home network. Keep this in mind, it is important to consider the limitations of your own network -- and furthermore what you are willing to do to your home network.
- Without your own hardware, setting up the server will be a lot easier.
- Without your own hardware, you will likely only have access to a virtualized CPU and very limited hardware specifications.
The solution that works best for you of course depends on what you are trying to deploy. If you want to deploy a relatively simple application that accomplishes some light goal in function, I would use a VPS. Linode is my personal favorite, though I have not used them since their acquisition by Akamai. With Linode, they have a 5-dollar `Nanode` option which I think fits the majority of deployment cases.
In my case, I am building an online notebook editor -- so it makes a lot of sense that I would want dedicated machines, a more complicated load distribution system, and it makes a lot of sense why I am targeting a hardware platform that gets me ~768GB of memory. I have to imagine most use cases are probably simpler, and as a result I would probably recommend Linode instead of what I am doing for most cases.
Also, even if your application is more complicated -- it might be a good learning experience to try deploying on a VPS first. At 5 dollars a month for that nanode I think it would be a great option for this. There are just a number of complications that make things exponentially more difficult when starting from your home network, there are a lot more steps involved, so it might be better to skip most of that and instead focus on learning all of the other things you might need to learn for a VPS.
This is a really old article, but in this ancient piece I deployed Flask with Gunicorn, Supervisor, Crontab, and NGINX -- all of these types of services are the exact things you will need to learn for this, so maybe this could give you some direction on how to get from " having a VPS" to " having a deployed web-server."
https://towardsdatascience.com/deploying-flask-with-gunicorn-3-9eaacd0f6eea
Hope this information was helpful. If you have any more questions, feel free to let me know I will do my best to provide an answer!