Colophon


When I started this website back in 2005, I decided that I would take a different approach when constructing it and making it available to the world. Instead of using a hosting service, I decided to build a server myself and run it from my bedroom over my regular residential internet connection. I would encourage anybody who wants to gain a deeper understanding of servers, networking, command-line interfaces, databases, etc., to go this route.

Connections and DNS

I'm using a plain-old residential cable connection that I've clocked at about 6Mb/s downstream and 1Mb/s upstream for sustained transfers. Ordinary residential connections have what's called a dynamic IP address, which means that the IP from my ISP can change at any time. Thus, I use a free service called DynDNS to update this IP address as necessary, and make it available from the name "bowers.homedns.org". This name is then used as a CNAME (canonical name) in the DNS entry for "markbowers.org", which was registered at namecheap.com. Thus, when someone types in "markbowers.org", it seamlessly routes to my house's IP address. Then, at my house, I have my pfSense router (pfSense is awesome, by the way) forward any incoming requests to port 80 (standard HTTP port) to my webserver's internal IP address.

Power

Since the cable modem, firewall, switch and server are running 24/7, I've put them all on uninterruptable power sources to protect against the damage that would result from abrupt power outages and transients. I have a 700VA UPS hooked up to the modem, firewall and switch, and a 1000VA UPS hooked up to my servers. Both of them are fairly high-grade SmartUPS units (line-interactive buck/boost, denoising, etc) from 1997, saved from destruction and refurbished with fresh sets of batteries. They'll keep my equipment running for about 30 minutes without any mains power, or if the outage is going too long, it will shut my machines down safely until power is restored. It even sends my iPhone a message if the power ever goes out!

Hardware

This part of the picture has changed a few times:

December 2005 - November 2006 November 2006 - October 2008 October 2008 - Present

PowerPC G4 533MHz
512MB RAM
Mac OS X 10.4 Server
Apache 1.4 / MySQL4 / PHP 4

Pentium III 1GHz
384MB RAM
Ubuntu 6.06 Server
Apache 2 / MySQL 5 / PHP 5

AMD 4850e 2.5GHz dual-core
4GB RAM
Ubuntu 8.10 Server in VMWare
Apache 2 / MySQL 5 / PHP 5

Software

The most recent incarnation is nice, since with VMWare, the server isn't running on the bare machine, but in a layer of abstraction known as virtualization. This lets several operating systems run on one machine simultaneously. Virtual machines can also be easily paused, backed up, moved, rolled-back, etc., if necessary. After playing with virtualization here, I built a server at work that runs dozens of server operating systems at once!

Within VMWare runs a standard LAMP package (Linux, Apache, MySQL, PHP) with Ubuntu 8.10 Server.

Content Management System 

I'm using Drupal 6 as the CMS for the website. When you load a page, the contents are being read from a MySQL database and a page is being rendered on-the-fly with PHP, to fulfill your request. This makes the site a lot easier to update and maintain than a static HTML page, and allows for more customization and interactivity.

The theme is based off of Marinelli by Matteo Leoni, with some CSS and PHP changes.

Powered by:

 




















 

Server Statistics

252 days, 5 hours, 12 minutes,
since last server reboot.

[ Current server CPU load: 0.03 ]