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.

HP LaserJet III

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. Click here for more details.

Server Outage

Early in September of 2018, the server's 10 GB hard disk started to fail, causing the system to crash. In my recollection, this disk had been in service since about 2000. As of late November, the server is back up with a 20 GB disk and slightly newer versions of the Linux kernel and other software. The Web pages, Gopher site, and e-mail inboxes have been restored to operation. Furthermore, with the larger disk, I look forward to adding more content to the site for your browsing and downloading pleasure. This will probably be the last update on the server's software, as newer versions either do not support 386 processors, or their performance is sluggish on older processors.

Server Outage, Part 2

In July of 2019, the salvaged 20 GB disk started to fail intermittently. Fortunately, no data was lost. A new 120 GB disk was installed on September 4, and 386server is back! As a word of caution, I had purchased a supposedly-new 250 GB disk online, and I had problems from the outset. This had data from a digital video recorder (like a TiVo) on it when I received it. It tended to run very hot. I could not successfully complete bad block checks. Formatting the drive and writing data to it resulted in data corruption. The lesson learned was, when buying hard disks, particularly low cost ones, always check them as soon as possible to make sure that they have not had data written to them, and test them for errors.

What is available here?