Home servers - good at first, but have to go

For quite sometime I've been hosting some stuff at home. It's quite simple - a second hand small-form-factor machine from Compaq, home internet and a router/switch.

Compaq machines are were small and very very quite, they just don't break at all. The first machine that I used for hosting had 7 (seven!) fans some of which we very noisy. No keyboard and no monitor. A small ups and it's good to go.

Hosting stuff at home is extremely cheap - internet that would have been bought anyway. The machines are also very cheap - my blog was running on a Pentium III, 800 Mhz and the machine was running Windows Server 2003 with the blog being .NET application. It's a little load on the electricity bill but that's hardly a show stopper.

A good wi-fi router would do the job of connecting all machines and provide internet for everything in the house. Most new routers have enough juice to support a linux - I've mentioned OpenWRT. If one wants to go crazy one would move a *nix machine in front of the router (two ethernet cards needed), because the router could easily go down.

At first it's very interesting. There are different OSes to configure, building an internal dns, dhcp, port forwards, certificates, sharing. There are a lot of things to learn.

But at some point all this becomes cumbersome - different OSes to configure, building an internal dns, dhcp, port forwards, certificates, sharing. Every single thing takes so much time and so much effort. And the bad thing is that this is a hobby, I'm not a systems administrator.

When I wanted to learn something new there was always twice the effort - once for administration (installing, configuring...), twice for the thing itself. Having stuff hosted somewhere else one does not care about all that. Just click install, or ftp and copy and that's it.

Sometime ago I decided to put a stop to all that. Hosting is so cheap now and the most valued thing (this blog) was the first to go to some distant server. It took me a couple of days but it worked. The old and frankly very stupid personal site I had got killed - after all simplifying is good right?

I've had so many computers, at some point I've owned 4 to 5 machines. I don't think that's necessary. I intend to get rid of all of them and have a nice 802.11 N router with an optical internet and ups.

So it was fun and I learned a lot but it has to end.

OpenWrt

Most wireless routers these days have web interfaces can share USB hard drives, have firewalls and so on.

OpenWrt is an open-source firmware that can be installed on such routers. It started thanks to Linksys using GPL software on it’s WRT54G router and had to release the source. This was the base for the project.

OpenWrt is a minimized linux based on the Busybox distribution that can run on the limited hardware of the devices. Thus the devices become a lot more flexible – ssh, telnet, portforwarding, iptables, firewall and so on.

The current version of OpenWrt is 8.09.01, code-named Kamikaze. They use cocktail names for code-names, the last one was called White Russian.

Another project, x-wrt, uses OpenWrt as a base and creates an elaborate web interface, called webif2, that allows the configuration of router via a web interface for users not familiar with linux. x-wrt uses the same version numbers when they bundle their web interface with OpenWrt.

I’ve used x-wrt 7.09 with webif (version 1) which had it’s glitches. Now I’m using OpenWrt 8.09 that provides its own web interface (quite good really). I haven’t tried webif2. But if I do, I’ll try to write something about it.

What about routers?

The starting point is the table of harware section in OpenWrt’s wiki. For every major manifacturer they have a wiki page with info whether they support the router and how good they support it. My router for example is supported fully with OpenWrt based on linux kernel 2.4. They don’t support the wireless (some binary driver issue) with kernel 2.6. So I’m using the latest version of OpenWrt, but with an older kernel.

Some routers have USB ports which can be used for harddrives, flash memories, usb cameras. For my router they have a manual for live streaming from a web camera. USB harddrives can be shared via ftp, samba…. (it’s a linux box after all).

The pro’s of these machines is that they’re cheap, very powerful, and very quiet.

The con’s come from limited memory (can be extended with a flash), lack of all linux commands and options (busybox).