Say I Wanted To Host It
![paint swatches](/blog-assets/blog-stock/paint-swatches-medium.jpg)
Once I had the Hexo CLI installed and the shell of a default Hexo of a project. The next question was "What do I do with this thing?". Seemingly easy question to answer, right? You check it in and let it die like every other side project that was destined for greatness.
Getting this out on the internet would be a great motivator to me. With the contents public and my name attached to it, that is most likely enough to keep me interested and engaged. So what are some of the options to host a static site?
- Setup hardware
- Hosting Provider
- Host Gator
- Go Daddy
- bluehost
- Cloud Platform
- Azure
- Google Cloud Platform (GCP)
- Amazon Web Services (AWS)
Setup Hardware
How "fun" would this be? I never claimed to be an IT/infrastructure wizard and I am okay with that deficient ability at this point in my career, knowing just enough to understand. In some regards, this would take me back to the days where every project required hardware to be provisioned. This approach would be uncomfortable for me. But isn't that part of why I am on this adventure? I guess that is one of the top reasons I am doing this.
I have a couple of concerns with this approach. First of all, security. There would have to be some opening up of my home network. Such that the outside traffic could be forwarded to the hardware that has yet to be set up. Not the biggest fan of starting with a security hole. While the probability of someone discovering a potential security hole is small. This approach is already leaving an undesirable taste in my mouth. Second, I don't have any hardware to host this on at the moment which would require some additional purchase. Not the worst-case scenario, a Raspberry Pi would be more than sufficient to handle the amount of traffic this thing is going to see. Lastly, my interests are not fully pointed toward hardware. If my heart is not in the first step of the adventure, what makes me think I will make it to the next step?
The decision has been made, striking out ~~Setup hardware~~ as a potential option.
Hosting Provider
Now a hosting provider, this would solve the problem. Cheap, easy, no issue with a security hole. Heck, even if the provider had a security hole. What is the worst that is going to happen, someone modifies the contents of the site? Maybe they get a credit card number of mine. PSSSSHHHTTT... Not much different than any Ecommerce purchase that has been made in my lifetime.
I have some experience with these in past projects for others. Once your credit card has been charged there is typically a simple setup to provision the hosted directory. Some configuration of a DNS record and you are off to the races. You build your website artifact locally. Then using an FTP client connect to the webserver. Drop the artifact on the server. Viola! You have a hosted website out on the public internet. Not too bad to get this option off the ground. After all, no rules are saying I could not change where it is hosted in the future, right?
But, this does not make me forge a new path. I have used this option before. This one is not off the list yet, but I will not call it the preferred option at the moment. Let's see what some of the other candidates have to offer before selecting this.
Cloud Platform
If a cheap hosting provider is a daily driver, then one of the cloud providers is a high-end luxury sedan. They have it all and they are continuing to grow. I have used several of the services from Azure and AWS in the past. Application hosting services, serverless functions, message brokering services, database services, caching services, CDN services, virtual machine services, storage services, the list goes on and on. I love the problems these products are solving. In a short window, one can take a local project to a production-ready environment using one of these providers. An environment that is scalable both vertically and horizontally, with ease. Geographically locating the product near its users, whether that be in your backyard or on the other side of the world. The only real limitation with these providers is your budget.
Now, this not only solves the small problem I am bringing to the table, but it also solves enterprise-level problems with ease. I'm SOLD! But wait for a second, isn't this selection going against the desire to forge a new path? In some regards, yes it is. However, it is my rule and there is a small loophole in this rule. I have not hosted a static site using any of these providers. So in my regard, this will be a new path to head down that is tangent to an existing path. Using the services I am already familiar with, but the services serve a different purpose.
Now What?
With a deployment service in mind, it's time to provision the environment. In the next post, I will detail what I did to do that.