Setting up a Home Server on (almost) nothing

There are any number of reasons you might want to set up a home server. Serving a website for cheap may be it. You might want to compile software, or backup your files onto another computer for safe-keeping. Whatever the reason, here’s how to do it.

Assuming you already have an Internet connection, it’s surprisingly easy. First, you’ll need a computer. For a server destined for a single user, you don’t need a lot of processing power (or a lot of RAM). This makes the whole process a lot easier.

The first place I would look is the local computer shop (preferably one that repairs computers). Ask them if they have any spare old computers you could have. Most would be willing to palm off any old computers they have lying around from upgrades (usually their customers don’t want the old computers back) for either free or a very low price. I used to work at a computer store as a technician. We had old computers lying around everywhere. Most of them were working fine. They may not give you the hard drive, but you can pick up one of those for cheap as well.

If you have a friend of family member working in a larger company (especially in an IT department), asking them for a computer might be fruitful. Most larger companies replace all their computers every 3 or 4 years, and as such usually have quite a few old ones lying around doing nothing. You can get amazingly good systems (usually with no faults or blemishes to be seen) if you ask around.

The next place to look would be a tip (or dump) shop. These are places (usually run by charities or co-operatives) that scavenge off the tip face and then sell what they find for incredibly low prices. You might think that all you’ll end up with is a 386 computer that’s been lying in bacon fat for the last month, but you’d be wrong. It’s amazing what people through away. My entire sound system (including high quality (albeit aged) speakers, amplifier, tuner and so on) was picked up at a tip shop for less than $20. All working perfectly.

The final place I would suggest looking for cheap computers (or the missing parts you weren’t able to find from a computer shop or tip shop) is eBay. You’ll be looking for incredibly cheap postage on the items (on computer cases this is a killer), so limit the search to places nearby that allow picking up the item. Don’t get carried away with bidding high for the ‘perfect’ server. Used computers are a dime a dozen on eBay, especially if you live in a more populated city.

Once you have a computer, it’s time to start installing some software on it. For this, you’ll need a monitor, a keyboard, a mouse, and an Internet connection. Once the base software is installed you’ll no longer need the keyboard, mouse or monitor, so you can borrow these from your main computer temporarily if you have to.

First though, you’ll need to get your hands on the software. The up side is that it’s all free. The down side is that there is no support line (though there are thousands upon thousands of sites where you can ask for help from other users). You’ve probably heard of an operating system called Linux (more formally known as GNU/Linux). Server environments are where it shines.

There are hundreds upon hundreds of Linux distributions (collections of standard software packaged up in a particular way). Each one has its own advantages and disadvantages, and I won’t dictate to you which is the best to use for a particular use. That said, there are a few that are worth your first attention. Names such as Fedora, SUSE, Debian and Ubuntu are well-known, and have been around for a decade or more (and as such, can be assumed to not be going anywhere anytime soon). If all you’re going to use your server for is storing files, a particular distribution (technically a different operating system, but the difference for most practical purposes is nil) called FreeNAS pops up. Check this out if all you want is to store files and nothing else.

The installation of most Linux distributions works thus (check the particular distribution’s website for details):

  1. Download an image (known as an ISO) of the operating system installer.
  2. Burn the image to a CD using image-burning software. For Windows, one I particularly like is called IsoRecorder.
  3. Insert the disc into the drive on the server, and turn on or restart the server (whichever is applicable).
  4. The disc will take a few minutes to start up, and after that just follow the instructions on the screen. Note that during the installation process the machine will probably want to configure network access. It’s best to already have the server connected to your modem or router before the installer starts.

After the installer is finished, you’ll end up with a bare server, ready for more software and configuration to take place. Read the manual of the distribution for details, but in general you’ll want to install some or all of the following software:

  • SSH. I recommend installing this so you can access the server remotely over the Internet. Port 22.
  • Apache or Lighttpd. These are web servers. Only install one of them. Port 80.
  • Samba. File sharing with Windows machines.

Note that I’ve listed these things called ‘ports’ in the list above. Why is this? These are configuration changes you’ll need to make to your router in order to let the Internet traffic see your server. If you’re confused, Google ‘port forwarding’ and the model number of your router for instructions.

You’ll also want to set up something called Dynamic DNS, which you can do at dyndns.org. This allows you to use a name to access your server (such as example.dyndns.org) instead of a dynamically changing IP address (such as 218.214.200.21, which can change every 24 hours or so).

There’s a lot to read and understand here, but once you’ve set all this up, it’s likely you’ll have a much greater understanding of how computers, computer networks, and the Internet all work. Oh, and you have a home server.

Some more rack gear

Over the Christmas/New Year period, I was simultaneously browsing eBay for junk and trying to come up with some more stuff to stick in my server rack, which I had just finished moving under my house (picture of it here). A very dangerous combination. After a small delay of contemplation into which model I should get, I ended up buying a Cisco 2610 router second hand. I hope to achieve a few things with this purchase:

  1. Firstly, I want to learn to configure Cisco routers properly, with the goal of some day in the distant future getting a CCNA qualification.
  2. Secondly, I needed to fill some more space in my rack.
  3. I wanted a modem/router near my server. At the moment my server is connected to the Internet via a wireless connection to a modem at the other end of the house.

I received the router in the mail yesterday, and I was a bit dissapointed. Unfortunately the front bezel had come off, which was a bit annoying. I can glue it back on though, and it’s only a cosmetic thing anyway. Far more important is that they hadn’t shipped it with rack ears, which is one of three reasons I bought it. I sent an email off, and a set of rack ears is on its way.

To make the router useful, you can add any number of different cards (such as for ISDN, ADSL, T1, and so on). Cisco calls these things WICs, for WAN Interface Card. I had to buy an ADSL one. It cost twice as much as the router did, because the ADSL WIC is still used in production, where the router is end-of-life. I also bought an external 56k dialup modem, so that I can set up a backup Internet service (which hopefully will autotomatically switch over) in case my ADSL line drops out (which it does once every three years, for about an hour).

At the moment I’m still waiting on a console cable to connect the router to my PC for the initial configuration. Once I’ve got that, I’ll get stuck into the configuration, and hopefully not blow anything up too badly…