You have finished designing your website and are finally ready for the show to hit the road. The last step is making it accessible to the public via the World Wide Web. For that to happen, your site has to be hosted somewhere online.
While most people automatically think about looking for a web host, you can actually host your web site on your own home-based server.
What is Web Hosting?
Web hosting typically involves a web host allocating computing infrastructure for the storage, configuration, maintenance and display of a website’s code, text, images, audio, video and associated services.Web hosts will offer different categories of hosting plans with the most popular being shared hosting, virtual private server (VPS) hosting and dedicated hosting.
Advantages of Setting Up a Server at Home
Subscribing to a hosting service is definitely the quicker and easier way to get your website online. All you need to do is sign up for your preferred plan, upload/configure your website and in a matter of minutes, your website is live. While setting up your own server at home is the longer path, there are compelling advantages to do so.
Among the major categories of web hosting plans, dedicated hosting gives you the most control of the infrastructure your website runs on. You have the power to make changes to the server's operating system, applications, files and disk space.
But with the actual server sitting hundreds or thousands of miles away at the web host's data center, you can never have physical control of the equipment allocated to you.
Also, your access to the dedicated hosting is at the web host's discretion. If at some point they deem you to have violated their terms and conditions or if you stop paying for the plan, your access will eventually be rescinded.
Having a web server at home takes dedicated hosting to a whole new level. You retain permanent ownership of the server and all data that is within it without being subjected to the whims of changing contracts, privacy policies and terms and conditions.
The home-based server can also be deployed for other uses including gaming, smart home automation and back-up storage for your computing devices such laptops, tablets and smartphones.
Web hosts are in business. So, you must pay to have your website run on their infrastructure. The lowest cost plans start at just a couple of dollars a year. This is, by any definition, fairly affordable for nearly any person or organization. But things are not always as they seem.
For starters, the lowest cost plans are a bare minimum offering devoid of certain important features of a well-functioning website.
Once you opt in for features such as SSL/TLS and the privacy of domain registration details, the final cost can be multiple times higher than the original price.
Also, these bottom-tier prices will often be for shared hosting plans which come with substantial restrictions on space, processing power, random access memory (RAM) and bandwidth.
Another thing to consider is that web hosting subscription fees are a commitment for life. Retaining access to the host’s infrastructure is dependent on your paying the fee with the expected regularity.
When you build your own server at home, you circumvent web hosting subscription fees. You effectively get premium dedicated hosting that includes physical control of the server but while incurring a fraction of the cost of the bottom-tier shared hosting plan.
How to Create Your Own Server for Web Hosting at Home
The process of creating a web hosting server at home is quite straightforward. You do not have to be a tech geek to get your website up and running. And the best part is you can always learn on the go as you tweak and improve it over time.
1. Choose the Hardware
Hardware is where it all begins. One of the benefits of building your own server is you can choose whichever computer you want to serve the role. Chances are you are not running a large, high traffic website at home. So even an old PC or laptop that has been lying around unused can be deployed to this purpose.
That said, choice of computing hardware will directly affect your website’s overall performance. The newer the PC, the better. Some of the minimum specs for a best practice home server include:
The PC is not the only hardware decision you have to make. Your home server will require an Internet connection for it to be accessible to the public. Choose a bandwidth plan that is commensurate with your expected traffic including peak periods.
Pay attention to both upload and download bandwidth. Internet service providers (ISPs) sometimes offer slower upload speeds for home internet connections. Check that yours doesn’t. Run an actual test on the connection to determine the speeds. There are websites that perform connection speed tests for free such as fast.com.
Fortunately, bandwidth is something you can upgrade easily if and when your website’s growth demands it. Also, many ISPs offer plans that, at an extra charge, include dynamic expansion and reduction of bandwidth in line with demand at any given moment.
2. Choose and Install the OS
With the hardware in place, your next major step is the software phase. That begins with the operating system (OS). This is what all the applications you want to install later on will run on. Good applications can be hamstrung by a wrong choice of OS.
There are many operating systems you could use for a home server, but realistically your choice comes down to just two — Microsoft Windows and Linux. Either can work. You just need to know the pros and cons of each then evaluate which one would be best suited to your requirements.
Microsoft Windows (MS Windows or Windows)
Microsoft Windows is by far the most widely used desktop computer OS in the world with a market share exceeding 76 percent. Mac OS and Linux come a distant second and third, respectively. This ranking is not however the same as market share for server operating systems as we will see when we discuss Linux.
While Windows is the king of desktop computer OS as well as server OS in general, Linux and UNIX rule the web server space. So, unless you consider the Linux cons covered below as too much for you, Linux is your better option. As a side note, did you know that the Android OS (the smartphone OS with the largest market share) is a Linux derivative?
3. Set Up VNC
You may have full ownership and control of your home server, but that does not mean you will always have physical access to it. You have to regularly leave the server behind and go to work, school, shopping, clubbing, vacation and other activities that pull you out of your house. Your website may go down or the web server may run into other problems while you are away. To make sure you always have control, you need virtual network computing (VNC).
VNC provides remote access to your server from wherever you are as long as you have an Internet connection. You can control the server and its accessories in the same way you would if you were physically present. To access the web server through VNC, you need its IP address as well as the VNC software’s password.To set up VNC, install the vnc4server application on your Linux server. Configure the server to allow remote access to begin using it. Create your preferred password for the VNC software.
4. Install HTTP
Next, you need the actual web hosting software. For this to happen on a Linux server, you need to first install Apache web server, MySQL database as well as PHP. This allows you to install and configure the hypertext transfer protocol (HTTP) server which is important not just for web hosting but web development and testing as well.
Installation is relatively straightforward and isn’t too different from setting up any other application. Simply follow the setup prompts. There are several versions of HTTP. That is HTTP 0.9, HTTP 1.0, HTTP 1.1 and HTTP 2.0. Find the version that is most consistent with your chosen hardware and OS environment.
5. Register a Domain Name
By this point, you have done most of the hard work required of a home-based web server. You can even stop at this point since your website can now go live and is accessible to anyone that knows your server’s external IP address.
However, an IP address is a string of numbers which makes it difficult to memorize. This is where registering a domain name comes in. It would be in the format mybestdomainname.com.
Ideally, the domain name you choose should be in line with the name or nature of your organization, goal and/or cause. Still, your first choice may not be available so consider thinking up several other domain names just in case.Once this is done, visit a domain registrar’s website, choose the name and top level domain (TLD) you want and pay for its registration. That’s it.
6. Test Your Server
Your website is ready to go. But first you have to confirm that it is publicly reachable. To do that, open your server’s browser window, type your registered domain and press enter. You should see your website if it is working.
If you don’t see it, try your external IP address instead just in case there is an issue with linking the domain name. A last resort is to type your local IP address and press enter.
In case none of these actions displays your website, you have to start the process again and confirm if there is a step you may have skipped, an application you misconfigured or a parameter you mistyped.
Frequently Asked Questions (FAQs)
No. You can choose whichever computer you want. Even an old PC or laptop that has been lying around unused can be deployed to this purpose. Chances are you are not running a large, high-traffic website at home. Note however that your choice of computing hardware will directly affect your website’s overall performance.
Yes. Creating a server at home for web hosting implies you do not need to pay for a web hosting service. However, that does not mean that you will incur no operational costs. You need to regularly pay for the domain’s registration. There is also the cost of your Internet connection as well as the uptick in home power consumption by the web server.
Yes. All you need to do is to transfer the domain to the web host and upload your website files to the web host’s server.