The Making of justbrewit.net
(or, How to Build Your Own Web Server Using Things You Probably Have Around the House)

Looking for a use for that old K6, Pentium 2, or Celeron system? Got a closet full of old computer parts? Turn it into a web server! The web page you are viewing is coming from a web server sitting on the floor next to my desk. This server was built entirely using parts from my "junk closet", and cost me essentially nothing to put together -- software included!

Update: On June 5, 2005, after nearly 2-1/2 years of faithful service during which the server ran 24x7 without so much as a single hiccup, the motherboard suddenly succumbed to "exploding capacitor syndrome". The site is still hosted in my basement, on an upgraded "junk closet" system consisting of a FIC AD11 motherboard and Athlon XP 1800+ ("Palomino") CPU. When the original motherboard bit the dust, I hastily cobbled together the replacement system, and moved the hard drive over. Linux recognized all of the new hardware without incident (just try and do that with a Windows-based server!), and I was quickly back in business. Stability of the replacement server has been as good as the original; as of late May 2006 (nearly 1 year in service on the replacement hardware), I have not experienced any unscheduled downtime.

The Hardware

Like any self-respecting computer geek, I've got all sorts of odds and ends that have been pulled from various old computers, and various components that have been swapped out due to upgrades. Here's the parts list for our "nearly free" web server project:

PSU Swap

The original PSU from the Gateway 486 tower case had some issues. The fan on it was starting to make a lot of noise, and regardless of the fan issue, I didn't really trust the 10 year old PSU, which had seen some fairly hard use in its day. Unfortunately, it was a bizarre non-standard form factor, and a modern PSU wouldn't fit the opening. A little work with a hacksaw and some tinsnips, and a piece of aluminum (cut from the bottom of that disposable baking pan) to cover the original PSU opening, and the case was ready to roll with the Baby AT PSU.

JustBrewIt.net PSU modification
back of server, including replacement PSU and patch made from the bottom of a disposable aluminum baking pan

Ventilation

K6-III+ chips were originally designed for the mobile market, and dissipate very little power; so extra case fans aren't really needed. I did want to make absolutely sure the hard drive stays cool though, since this box will be running 24x7. So I used some adapter rails to mount the hard drive in the bottom 5-1/4" external bay, and put the faceplate from the dead hard drive cooler in front of it. The PSU exhaust fan should draw enough air through the faceplate to cool the drive.

front view of server
front of server, including ventilated drive bay for the hard drive

Configuration

The FSB is running stock (100 MHz). I decided to bump the multiplier to 5x, to run the CPU at a slightly overclocked core speed of 500 MHz. K6-III+ chips are great overclockers, and I know that this one will even do 550 MHz at default VCore; I figured the extra 50 MHz would give the server a little extra zip, without increasing heat output much, or shortening the CPU's lifetime.

The motherboard has been flashed with an unofficial (beta) BIOS from FIC's web site, to allow it to ID the mobile K6-III+ chip properly.

Memory timings were left at their defaults, except for CAS latency, which was lowered to 2. I figured a PC-133 CAS 3 stick ought to be able to handle CAS 2 at 100 MHz no problem.

Everything else about the configuration is standard -- hard drive as master on IDE 0, CD-ROM as master on IDE 1, etc. The VA-503A's on board sound is enabled, but I don't have any speakers connected to it now, so I can't hear it anyway. Maybe I'll eventually set it up to play a sound when people connect to it or something, just for grins.

Initial Burn-In

Initial burn-in was done by looping Memtest86 overnight, to verify that running the PC-133 CAS 3 as PC-100 CAS 2 wasn't a problem. The system passed the memory test with flying colors.

Software

If we're using (nearly) free hardware, we really ought to use all free software too, right? :-) I've been getting up to speed on Linux lately, and this seemed like a perfect opportunity to learn how to put up a Linux web server. I installed Linux using a set of Redhat Linux 8.0 installation CDs I burned myself, from ISO images I downloaded from one of Redhat's official mirror sites. (OK, if you really want to get picky, I guess the software wasn't totally free, the blank CD-Rs cost me a couple of bucks...)

Installation went relatively smoothly. Redhat 8.0 does have a few minor quirks, however. A tip for anyone contemplating Redhat 8.0: Assuming you're using the default English language setting, do yourself a favor, and immediately edit the /etc/sysconfig/i18n file after installation (before you do anything else), changing the first line to:

LANG="en_US"

You'll save yourself a lot of frustration later on (things like the UNIX "man" command not working right) if you do this.

Internet Connection

My Internet connection is currently IDSL (144 kbps up and down). Not blazing fast, but good enough for a low traffic server like this one. My ISP (Speakeasy) even provides a second static IP addresses as part of their standard IDSL package; all I had to do was ask for it. Oh yeah, and unlike many ISPs, they don't mind if you run servers on your connection. If you're thinking of switching ISPs, they're definitely worth a look, if their service is available in your area.

I debated whether to bother registering a domain name; after all, a domain registration (at $35/year) would cost me more than the server hardware and software put together! In the end, vanity won out; my credit card balance took a $35 hit, and here we are running on the justbrewit.net domain. ;-)

Update: As of mid-February 2004, my Internet connection has been upgraded to 1500/768 ADSL... who-hoo! Speakeasy upgraded me for free, and my monthly fee even went down by $20. Did I mention that Speakeasy rocks? :-)

Security

The rest of the systems on my LAN are behind a dedicated firewall (just a small one like you can pick up at the local Best Buy or CompUSA), to provide security and NAT capability for all of my PCs. Incoming TCP/IP connections are blocked at the firewall, securing the LAN. The JustBrewIt.net web server on the other hand, is outside the dedicated firewall, in the "no man's land" between the firewall and the IDSL modem. The web server uses its own software firewall (which comes with Redhat Linux) to protect itself from intrusion. And in the (hopefully unlikely) event that the web server is compromised, it is still walled off from the rest of my LAN, so the worst that can happen is that the hackers take out just this server.

Server Administration

I don't have room for multiple monitors in my office (it is crowded enough already), and I'm out of ports on my KVM switch. It would be nice to have more than just basic telnet/ftp access, but moving monitor/keyboard/mouse cables around every time I want to do something on the server is a pain. What to do? Free software to the rescue again! VNC (Virtual Network Computing) is a slick little package that allows you to set up virtual desktops that are accessible over the network. If you've ever used Symantec's pcAnywhere package, VNC is sort of like that... except it is cross-platform. And free.

Finding the information to get it set up exactly the way I wanted took a little digging, both on the VNC home page, and through Google. But once it is set up right, it is pretty sweet. My primary workstation is still Windows-based. But with VNC, I have full access to a virtual desktop on the Linux web server, from within a window on my Windows 2000 desktop:

virtual Linux desktop under Windows 2000
virtual desktop from the Redhat Linux web server running on my Windows 2000 workstation
(click the image for a full-size screen shot)

The mouse scrollwheel even works inside the VNC session! I can put the mouse cursor over a window in the virtual Linux desktop, spin the wheel, and the Linux window on the virtual desktop scrolls! I didn't really expect VNC to work that well. I'm impressed.

What about power consumption?

You may be wondering if I'm concerned about the additional electricity this system will consume by being left on 24x7. Well, there are a few mitigating factors:

So what is Folding@home anyway?

Folding@home is a distributed computing project being run by a group of scientists at Stanford University. The goal of the project is to run molecular simulations using spare CPU cycles donated by people around the world, in order to "understand protein folding, protein aggregation, and related diseases".

Conclusion

So there you have it! A complete web server for next to nothing. The hardware was free, because it was all stuff I wasn't using anyway. The software was free, because it was all included with the free download of Redhat Linux. Even the authoring of this page was done using mostly free software (Mozilla Composer). I did cheat a little, and used a commercial package (Corel Photo-Paint) to do some minor touch-up on the pictures, rescale them, convert them to JPEG format, etc.

If you've got some old hardware that is sitting around unused, I encourage you to try loading Linux on it. I have to say, it has been an interesting (if occasionally frustrating), and quite educational experience.

close up of front
No Intel Inside!

Click here to return to the JustBrewIt.net home page!

Questions? Comments?

E-mail me!

Obligatory Legalese

Any trademarks referenced herein are the property of their respective holders. This web site is Copyright © 2003-2006 by Michael Uchima.

Posted January 3, 2003; last update May 28, 2006