So, a couple of moments ago I did not have a website and now I do. This blog is hosted on one of my personal servers. Cost of my new website, zero dollars. In the old days, when I first started using the Internet, it was very expensive to host your own website. Now, with the help of free and open source programs, I am able to create a personal web-page at no extra cost.
I have a couple of servers at home, leftovers from my research days, that I had previously used as file and media servers for my LAN. The move to hosting a website appeared natural to me. However, there were a number of things that I needed to handle before being able to do so.
First, my main concern was that I would have to shell out some hard earned dollars to buy a domain name and a fixed IP. Recently, I watched a video of a hacker at Defcon who had his Mac stolen and the journey that he went through to get back his machine.
One of the tools he mentioned was dyndns. I immediately became interested. Here was a piece of software that would allow me to have a domain name without getting a fixed IP or shelling out for an expensive domain name. So I created an account on dyndns.com, and downloaded ddclient for my Ubuntu server.
That solved the problem of getting a domain name. Next I downloaded and installed apache server. From there, it was pretty easy to set up a simple test website — no more than a couple of minutes in fact.
However, since I am not a great artist, I decided to get a more sophisticated system on-line. One of the main candidates that came to mind was WordPress. WordPress boasts a five minute install time, but I have to admit it took me a bit more than that.
First, I downloaded MySQL and set up a database for my website. Next, I went through the process of setting up the WordPress software. I was doing this from my laptop using ssh to access my remote server which is in my other apartment. The WordPress installation process contains an automated browser-based configuration process that links everything together.
In my case, it got stuck at the stage of providing the necessary MySQL settings for the software. Since I was doing this remotely, I tried entering the IP address of my server through the browser. After several attempts resulted in error messages telling me that my database server was not accessible, I made manual changes to the configuration files. That fixed the problem immediately.
And so, this blog is now hosted on my personal server. I have the pleasure of knowing that I am controlling my own content. The real beauty of the entire thing, is that all the components used to do this are FOSS. So not only do I have control over my content, I also have control over the platform that hosts it. The knowledge that I can add any feature to my OS and web server at any time by looking at their source code and modifying it is exhilarating.