It may seem like an extremely daunting and highly technical orchestration of events to start-up, and host your own website. Well that is not exactly the case. You may not be the best website on the web, but you can have a nice little hobby website that is a fun and easy place to share with others including your friends and family.
The internet is really just a bunch of connected computers on the internet superhighway. When you type an address into a web browsers address bar it talks to what is called DNS server to know where to go in order to get the computer you requested. Your browser actually goes to that server which then returns a file that is on the computer’s file system, that file is displayed in your browser and may contain a wide array of data and information. This computer serves up the files, so it is referred to as a server. The real magic happens with the programing of the files on the server which can be something as simple as an HTML file to display ‘Hello World’ or something as complex as a way for researchers around the world to access information about the human and other animal genomes for critical research needs.
Now the question is how do you get your file on a computer and let it be seen by the world. You may just want to share some travel photos with family and anyone else that may stop by or you may want to sell a product or service to a broader reach of people.
Getting a Web Address
Every internet service provider supplies a subscriber with a public IP address, which is basically the digital address of the wire coming out of the wall. This connection may then be connected to a router, that assigns other internal IP address for devices to connect to the same internet connection. Different providers have different rules on making a web server public, but now a days most are pretty relaxed. The public IP address is what other people need to connect to the file on your computer that will be used to share your information with the world. In order to let people connect to that address you must do some settings with your router to allow the connection and tell it which computer you want the connection to go to, which I will cover later.
The public IP address is a very ugly series of numbers such as 145.346.0.346 or something along those lines. No one wants to remember that nor is that very marketing friendly for businesses. This is the reason people get a registered domain name like google.com or familytweed.com. Anyone can register an available domain which can vary in price according to the extension (.com, .net, .web etc…), if the name is available, and the demand for a particular domain name. I have been happy with Google Domains because it is a simple interface, and allows you to register your address with their DNS services as part of the purchase. Some of the troubleshooting and help can be a bit vague for beginners, but it is manageable.
Connecting a Computer
Actually deciding how and what computer to use is a bit of a big topic so I will try to be very general and provide more detail later. Basically you need a dedicated computer, that is connected preferably by a network cable all the time to the internet. If the computer turns off or looses connection then your website is no longer available. The easiest set up that I like to use is Ubuntu Server, with a LAMP installation in which something like WordPress can easily be installed. During the server install it prompts what you would like to install with the server and LAMP is an option which is fantastic because you can be up and editing your website in about an hour if everything is running smoothly. I like using virtual machines which you can spin up easily on any machine, but again use something that is stable because you want to keep your website available to the world, otherwise what is the point.
Once the web-server is up and running, the router is configured, and the domain host knows your public IP address to send requests for your new domain to your newly made web-server you can install and set up the web editing software like WordPress. Alternatively, you can write all the code yourself, but if you can do that you probably do not need to read about how to start a web-server. Once WordPress is installed and after some simple configuration you can do the rest through the comfort of a web browser.
The alternative to making your own web-server is to let someone else do the computer work and have a cloud hosted website. Many different companies offer this with a wide range of prices for different sizes, power etc… so shop around for what you want and need. I enjoy tinkering with computers and did not want to pay anything more than the yearly domain registration fee to enjoy the hobby of having a website so I elected to go with the self-hosted option.
Bringing in Visitors
Now that we have a server that is hosting our files, and we have registered our ugly public IP address with our catchy domain name, we are ready to bring in the masses to see what we have to offer. Search engines have a process called indexing which you can request for you websites to be listed with the search engine. They will crawl over your website, document the content, explore links, and then start showing your webpage in search results.
Now, that seems easy, but there is a lot of sites out on the internet. When you search for something on Google it does a quick search and ranking of all the sites in its index. Google utilizes something called page rank, which basically picks the sites with the most relevant references from other websites to quickly order the results and present the requester with the most relevant sites in order. If you are not on the first few pages then good luck getting visitors. There are tips and tricks, and also marketing companies that can help, for a fee of course. I prefer just to put it out there and if it makes a good match then great, if not then well I had fun putting it together and I can enjoy it from anywhere. I also share the some sites through social media or simply telling my family and friends to go check out my new pages for new pictures or content they may enjoy.
Hopefully that provided a quick overview of what it takes to self-host your own website. It is a complex system that I hope to better unpack overtime. If you have any interest in hosting your own site I recommend giving it a try. Feel free to reach out and contact me if you have questions or need more information on where to get started. I may not have all the answers, or even the right answers, but I should be able to provide a little guidance.