Many homes today want to share data between multiple computers and people without the hassle of USB drives, CDs and DVDs. Setting up a Linux Home Server can solve this problem and, if you have an old desktop lying around, it can be done for little out of pocket cost.
Hardware
You don't need the latest and greatest hardware for a home server. You should at least have a 600 mHz processor and 512MB of RAM, but since you will not be using the GUI, you don't need much more than that. What you will need is a considerable amount of hard drive space to hold all of your files. Save money by using old hardware, and put that money to good use buying the largest hard drive you can find. One caveat, some old hardware will not recognize extremely large hard drives, so you should do some research before you purchase.
Software
Obviously, you will need a copy of Linux. There are many different Linux Distributions and we have a fantastic guide to choosing the Linux distro, but for the purpose of this article it really doesn't matter which distro you use. If you are a new user, it is a good idea to go with one of the better known distros - Ubuntu (or any 'buntu), OpenSuse, or Fedora - because they have good forums and it's easy to find help. For purposes of this article, I will be using Ubuntu.
After installing the OS, install the following packages:
samba - for the ability to share data with Windows Computers
openssh-server - for accessing your server over the Internet
cups - for creating a print server
clamav - for virus protection
Installing these packages with Ubuntu is easy. You can either download them from the Synaptic Package Manager in the GUI, or simply type:
sudo apt-get install package-name (replacing package-name with the name of the software)
File Server
The first thing we will configure is the file server. Although Linux understands the NTFS file system, it sometimes causes problems with the read/write permissions between the Window and Linux. Therefore, you should install Samba for data sharing.
Once Samba is installed, you will need to make some configuration changes. Using the command line (terminal) type the following commands:
cd /etc/samba
sudo gedit smb.conf
A text editor will display the smb.conf file. Change the following fields to reflect your network:
WORKGROUP = workgroup or domain group name
MACHINE_NAME = browseable machine name
PDC & BDC = primary domain controller and backup domain controller name
any IP number = your IP scheme or related machine's IP
The Samba HowTo is a good place to look for detailed instructions, sample configurations, or if you just want more information.
Once your smb.conf file is edited, restart the samba daemon:
sudo /etc/init.d/samba restart
Print Server
A print server allows everyone to access the printer without the hassle of plugging it into whichever computer needs it at the time. CUPS (Common UNIX Printing System) is the software that Linux uses to access the printer.
There are two ways to configure CUPS. You can always change the configuration files from the command line, or you can access the configuration files from a web browser. Although I normally recommend using a command line, CUPS is the exception to this rule. Open your preferred web browser and type
http://localhost:631
in the address window.
You will be presented with a GUI that allows you to add your printer with help from a wizard. The wizard is pretty self explanatory, but if you would like more information it can be found in the CUPS User Manual.