Building your own website

Interested in building a personal webpage or a blog? Or perhaps a family events & holiday photo book/album online? But not interested in spending monies on domain & hosting? With a little effort you can build your own website and host it on your home-web-server at virtually no cost, besides Internet connection and electricity fees you should have when reading this.

Let see what you would need to setup a webserver.

What is needed:

  1. Internet connection (assuming you have one already). You need a reasonable upload-speed if you want to host a webpage. ADSL usually have faster download speeds than up-load speeds.  

  2. Router with port-forward feature. Most home modem/routers have this features standard build in. Check the operation manual if in doubt. 

  3. (Un)used computer. If you have an older PC somewhere lying around gathering dust, it is most likely a good candidate to be used as a server. There is no need for a monitor and keyboard & mouse to be permanently connected to the PC, but is needed during the initial installation. The CPU should have at least 2 cores, as in Pentium Dual-Core or AMD dual-core, or multi-core. Modern server software is written for multi-core software. PC's manufactured after 2006 are mostly OK.

    If you want to experiment first, try it out in a Virtual Machine using VirtualBox or VMware.

  4. Domain name. Although not strickly necessary, it makes it easier to remember than an IP address. A number websites offer free DDNS service; NO-IP,  Free DNS Afraid , Securepoint  just to name a few. The DDNS service will also update if the (dynamic) public IP address on your router changes

  5. Linux server distribution. There are many. By definition, a server does not have/need a Graphical User Interface (GUI). However  A webserver can run perfectly on a desktop PC that is always 'on'. But running a GUI on an old PC would strain resources to the max and slowdown the server application. Even if you have a modern PC, running video games or other resource intensive apps will slow down the webserver app significatly. In other words, you want your server PC to be used for web-apps only.
    In this exercise, UBUNTU-server is used. Other Linux-distro's will need different steps to complete the job. Most distro's have good online documentation and wiki's.