Home-Hosting this website
UPDATE (06-04-2017): This website you're now viewing is hosted 100% from this Raspberry Pi!
It is hosted from my garage, on a second-hand server computer, which was a cheap bargain from Ebay.
This website is a constant work in progress - it's currently very early days! I started putting it together in December 2014, and went live with it at the start of 2015. A year and a half later, It's grown organically with little direction, and now really needs re-organising.
So why does this site exist?
Why a home-hosted website, and not an easy-peasy WordPress Blog, Facebook page etc...?
- I'm in control of this site: I don't like putting my trust into a third party. I've already been burnt by losing three Posterous blogs when Twitter bought them out and shut the service down.
- Ethics, nothing is for free: I closed my Facebook account when they were floated on the stock exchange for a massive $104bn! It made me realise that it's the words I write, the links I click, and choices I make that helps others to make a fat profit. It's the same for all other "Free" services - you pay with data about your life.
- Independence: The internet was built by individuals, before the corporate giants took over. This site hopefully shows how it is still possible to be independent.
Ever wondered where a website comes from?
These words you're reading are coming from an old second hand Dell CS24-SC server computer (Fig 1) sat on top of the tumble dyer in my garage (Fig 3). The servers Operating System is Linux Ubuntu Server 14.04, running headless - no monitor or keyboard, only physical cable connections are an Ethernet cable, and mains power cable (Fig 2).
This website is a bunch of text files that I've written in HTML and CSS code that sit in a folder on my server. Your web browser reads these files as instructions of how to display graphics on your screen.
All HTML / CSS / JS code that goes together to build this website has been written manually, either over SSH (Secure SHell) connection using Nano text editor, or SFTP (Secure File Transfer Protocol) using Gedit or similar text editors (Fig 4 and Fig 5).
How does your browser know how to connect to my server?
The domain name 'www.scottbouch.com' is a nice convenient way to browse to this site, but it requires a Domain Name Server (DNS) to work. A DNS is another server computer somewhere in the internet to look up the Domain Name (www.scottbouch.com) in a table against my home routers Public IP Address in order to point your browser to this website.
My Internet Service Provider (ISP) fequently decides to give my home router a new IP address. The DNS server's lookup table won't know there's been a change of IP address until it's told, so I get round this by using a small script on my home server called 'ddclient'.
Ddclient notices when my ISP changes my home router's Public IP address, and notifies a Dynamic Domain Name Server (DDNS) of the change. The DDNS server then notifies all other DNS servers worldwide to update their lookup tables, so that www.scottbouh.com is referenced against my home routers new Public IP address, providing your browser with the correct IP address to look to for the website text and image files.
This process happens every time my ISP changes my routers Public IP address, which can be daily.
Firstly, it's free. Secondly, it doens't mess you around as Windows does, you feel more in control of what happens, and when.
A lot of people in this world are Linux users without even knowing it - Android for mobile phones is just a pretty front-end for a Linux based operating system.
Note, I've put together some Linux tips and guides here.