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.

The main aim of this site is to create pages to share details of the tech & engineering projects I get up to - this site being one of those projects! For me it is a learning exercise in HTML, CSS, JavaScript programming, Linux, and the Internet.

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...?

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.

Why Linux?

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.

Fig 1 - This website comes right from here!

Fig 2 - Just two connections to the server, mains electricity and Ethernet.

Fig 3 - It spent about the first year on the tumble dryer in the garage... and is now mounted in a dust-free ventilated enclosure.

Fig 4 - Example of Nano text editor open in a terminal window, accessed over ssh connection to the server.

Fig 5 - Example of the more user-friendly Gedit text editor open in a terminal window, accessed over ssh connection to the server.

Fig 6 - Using my Android phone to program the website. Connected to my server using ConnectBot app via SSH connection, then once logged in t the Server, using Nano text editor as above. Note, I've installed the Android Hacker's Keyboard to give my phone a Ctrl button.