The Frugal Web Server

The 386 Server Story

386server.info is a 386SX-16 based server built from spare parts. The server went online on April 4, 2006, as atorrejon.dsl.pdx.spiretech.com. The only components that were purchased new were the hard disk and the case/power supply. However, the 386 server story began more than a decade earlier, with a South Dakota School of Mines and Technology student named Marijane White. I knew Marijane from the USENET newsgroup alt.geek. In 1995, Marijane lived in a dorm room that had an ethernet connection with a static IP address that was accessible from the outside world. The hostname palm014.dorm.sdsmt.edu was assigned to her room. Marijane installed Slackware Linux on a then not-so-old 386 and created login accounts for her friends. By logging in, one could have access to a bash shell, Pine (mail and USENET), a web server, chat rooms, and some games (I never tried the latter two). I recall executing the "who" command and discovering that several other users were on the system at the time. It was impressive that a modest computer like this could be shared by several users without it becoming painfully slow.

Things didn't stay peachy-keen for Marijane for very long. Some malicious person exploited a security hole in one of the talk scipts installed on her computer and created an illegal software download site. The school quickly discovered this and ordered Marijane to shut down her server pending investigation. Marijane was eventually allowed to resume operating her server, but accounts belonging to people outside of the South Dakota School of Mines and Technology had to be deleted, as computing resources (including the network) were for students and faculty only. A few years later, the .dorm.sdsmt.edu addresses disappeared altogether. I'm sure that this school, as well as most others around the globe, went to firewalled internal networks for their dorms both for cost savings and security.

Shortly before I graduated, a roommate gave me some old 386 and 486 motherboards. Only one of the 386 motherboards would power up. I decided to build a system around it. I installed Slackware Linux and compiled the kernel to run as efficiently as I could on the limited memory and speed of this system. As this was 1999, always-on Internet connections were not that readily available to home users; ISPs barred the operation of servers from home DSL service, threatening random port scans. In those early days, I used the computer as a file server and as a network address translation machine (so that several computers could share a dialup Internet connection). However, I remembered the Marijane White story, and I swore that one day I would run my own 386-based server.

Here are some recent photos of the server. At the bottom right is a closeup of its humble 80386SX-16 CPU. I have not been able to determine the vintage of this motherboard, although the date code on one of the other ICs suggests late 1991 or early 1992 (coincidentally, this was around the time that Linux first appeared).

386 Server Today

When my system became a full-time server, using a DSL connection, ISPs had become much more lenient about permitting their subscribers to operate servers. Small servers like this one were popping up in small businesses and homes. The DSL modem was Westell 516 (shown below), which did not incorporate a built-in router, so this function still continued to be done on the 386 server. The other functions were: web server, gopher server, ftp server, mail server, DHCP server, DNS server, file server, and NTP server.

386 Server in its old home

On October 15, 2012, DSL service to 386 server was terminated due to Spiretech, which I had been using as an ISP, exiting the DSL business. However, Frontier had a FiOS installation promotion, and service was restored on November 9, 2012. The modem used with FiOS performs network address translation and handles the DHCP server and DNS server functions. These two functions, as well as the extra network card have been removed from the 386 server, resulting in improved stability and performance. The use of a fiber optic Internet connection allows the web server to reach its maximum speed, which I have estimated to be about 2.2 megabits per second. Previously, my DSL service limited the web server's throughput to 128 kilobits per second.

Most recently, I set about repairing a 1990 vintage Hewlett-Packard LaserJet III. This printer seems like a very appropriate companion to the 386 server, which now functions as its print spooler. I picked up the printer in 2003 but was only able to use it for a few months before I started experiencing frequent paper jams and hearing a horrible loud clicking noise. Smudges started to appear on printed pages.

I first noted that the feed and transfer roller clutches did not reliably engage when the printer attempted to load paper. Small solenoids on the circuit board shown below control these clutches. The solenoids were functional, but the Darlington transistors driving them were questionable. Not having the original Japanese Darlingtons on hand, I used pairs of metal 2N2222A transistors, which have current handling capacities well in excess of that required by the solenoids. A less "redneck" parts substitution would have been a TIP120 Darlington. This is a TO-220 device that can be found for as little as $0.39 apiece.

Unfortunately, even with the feed roller clutch operating reliably, pickup of paper from the tray was still not reliable. I was able to fix this by installing a "paper jam kit" consisting of a new roller tire and paper separator pad. In their old age, the old roller tire had become hard and smooth, and the separator pad had become sticky. The other rollers appear to be in good shape, although I am considering buying some spares to keep on hand if the price is right.

The plastic gears in laser printers are prone to becoming hard and brittle due to heat from the fuser. I noted that one of the fuser gears (see below) was showing signs of discoloration and wear. I was able to find an inexpensive maintenance kit online consisting of this gear, as well as the cotton pad that continually cleans the upper fuser roller. Installing the new gear did not stop the clicking noises, but changing the cotton pad eliminated the smudges. To maintain print quality, it is recommended that these cleaning pads be changed each time that a new toner cartridge is installed. Another reason that it is important to regularly change these pads is that a clean pad places less drag on the fuser drum, and this may help extend the life of the drive gears.

Eventually, I discovered that the loud clicking was due to a stripped gear in the transmission gear cluster. Shopping around online, I was able to find an unused new old stock gear cluster for about $20. Some of the gears in the old gear cluster, particularly the stripped one, had a gray color that may have been due to exposure to heat. The old gear cluster and dirty fuser cleaning pad are shown below, on the left. Next to that is the Laser Jet III, ready to print, once again (please pardon the messy bench).

What is available here?