Here’s a quick rundown on how I built this website and the reasons behind changing it all around. I’ll not go into much detail on exactly how I did everything, all that detail can be found on the internet – Google is your friend. This run down is also for my own benefit, as a record of how I went about the whole process – the old memory isn’t what it used to be!
Firstly I previously hosted my old website on an old Pentium II Dell desktop I picked up second-hand. It was old, slow and had a small hard drive. I put a bigger drive in and rather than spend a lot of time setting up a server by hand I cobbled one together with using a Redhat Linux 7.2 based distribution called ClarkConnect. This worked ok for a while, it was simple to set up but a bit inflexible in a few ways, ran an old kernel and the old PII was loud, slow, ran hot and was hard to upgrade.
Still, it served me well for a while but eventually (and after being constantly hassled by Rebecca that the old website looked so bad!) I decided to change it. I’d been putting it off for a while, knowing what a pain it would be to change it all but the recent release of the Mac Mini gave me the excuse to retire the old Linux server. I’ve become a Mac and OS X convert over the last 2 years and I this gave me a good excuse to update my server.
The server runs on OS X 10.3, which being Unix based, has a rich volume of software available to it – and a lot of it is free and open source. The Mac Mini is an overkill for a small home server, but it’s small, fast, quiet and low power – all the things the old Linux server wasn’t. To cut to the chase, to replace the old server I needed to implement the following systems/services:
- Mailserver – OS X comes with Postfix already installed but not turned on, I used Postfix Enabler to turn it on and set up a IMAP server. All very easy done, it practically runs out of the box. All I had to do was move my mailbox to the new server.
- Web server – OS X has the Apache web server preinstalled. You turn it on under the System Preferences -> Sharing and enable “Personal Web Sharing”. That’s about it. I didn’t have to do much else to get it running, except enable PHP, SSL and the mod_rewrite packages for some of the later packages I installed. Only PHP required installing the other changes are configuration options.
- Webmail interface – this enables me to check my email on the server from any computer on the internet. I had previously used Squirrelmail and I discovered that OS X Server comes preinstalled with it too. I only have OS X Client, so I needed to install this package too – another simple exercise, all the instructions are on the Squirrelmail site.
- Photo Gallery – other software I have used previously is Gallery, a package for generating and managing photo galleries. I had to install a couple of extra graphics manipulation packages to get this to work, but you can find install packages for the Mac to do this for you.
- DHCP server – my old server handed out IP addresses to the other computers at home using DHCP, I needed the same thing for my new one. I found a DHCP installer package here.
- Spam filtering – it seems everyone these days is using SpamAssassin to check for spam. It’s relatively easy to install since OS X has Perl pre-installed. Setting it up to work in the mail delivery system is a bit of a pain though. I eventually worked out a simple method of doing it with Procmail. I also set up a cron job to teach SpamAssassin to sort the spam from the ham.
- Network Intrusion Detection System (NIDS) – a unix server with ports turned off is more secure than a Windows box, and should keep most intruders at bay. A NIDS is a bit like an alarm system for your computer – if someone breaks in at least you’ll know about it. Snort is a free NIDS, and there’s an installer for OS X here.
- Dynamic DNS updater – my site is run off a cable modem connection, with a dynamically assigned IP address. The IP address doesn’t change very often but if it does and I don’t have a way of updating the DNS record, the IP address and domain name won’t point to my server anymore and my site will simply disappear from the internet! DynDNS.org provides a free service to update the internet DNS records for my domain name and DNSUpdate is an update client for the Mac that detects when my IP address changes and notifies DynDNS.org.
- Automated back up system – any computer is only as reliable as its backup system. After putting so much time into setting this server up I didn’t want to do it again any time soon. I connected an external Firewire drive to the server and installed Carbon Copy Cloner and configured it to clone the whole drive on a regular basis. This also backs up my email and web site content at the same time. I use this software on my PowerMac too and it has saved my skin more than once.
- Streaming music server – I have a Slim Devices Squeezebox and I use this in conjunction with their Slimserver software to listen to my digital music library on my stereo. I can highly recommend this combination if you’re looking for a way to wirelessly interface your digital music to your stereo. The software runs on just about any platform and installs easily under OS X.
- Home page – this step is what took most of the work! First of all I wanted to replace the boring old static home page with something a bit snazzier looking, but also something that wouldn’t need much farting around to manage or to add extra content.
Some kind of weblog software looked like the best option, that kind of thing seemed to match all my requirements, despite weblogs being a bit geeky. There are many packages out there but after a short search I found this site with a comparison of all the packages available. I came down on the side of WordPress – it’s free, has customisable themes and plugins and is simple to install and use, and it’s what the bloke who came created the comparison site decided to use. His reasons why he chose WordPress seemed to match my requirements pretty well.
The WordPress requires a database, MySQL, another simple install. I also installed phpMyAdmin to help manage the database. There’s a trick required with the MySQL passwords for both WordPress and phpMyAdmin to get them to work with newer versions of MySQL, look for it on Google. I then searched around the internet for a suitable theme to install to customise the look of my new web page.
At his point the site was “complete” and I removed my old front page and bought the new one online. The hardest part of the whole set up process was getting both Squirrelmail and Gallery integrated into the look and feel of the new site. Luckily I found a how-to for Gallery here and after a bit of frigging around, I got that to work. I then adapted the method described in the Galley how-to to Squirrelmail. I modified a couple of scripts and with a little trial and error eventually got the log in page looking right too! A bit more messing about with a custom Squirrelmail theme got the rest of the colours on the site matching the home page – remember, aesthetics are everything!
This run through has been very, very brief and glossed over many, many small and frustrating details I encountered along the way. It would be a miracle if this post is of any assistance to anyone else but me as a reminder to myself, but I’d be happy to answer any questions about it if anyone has any!