how to make server on your computer
by Brett Thomas
If you're anything like me (even before I got really involved with bit-tech.net), you've got spare parts everywhere. You know what I mean - systems that you have put aside as you've upgraded over the years, like Northwood P4s and Athlon XP boards that have gone the way of the dodo. They aren't your top gaming rig - they don't even need 200W to run, much less have 200W for the graphics card.
In my goal of helping you find new and useful ways to use that old crap, it dawned on me - everyone I know complains about files on this computer or that computer, or not being able to get the things they need or want while they're out or away from their home desk. They needed a file server - a REAL file server, with web interface and bit-torrent and the capacity to not tie up your precious screens and keyboards, which are (at least in my house) in less supply than motherboards and hard drives.
It needs to be fast, extensible, flexible, run on old spare parts, and be completely headless after about two hours. It needs to be Linux. And apparently I need to be our resident Linux expert, Ken "Glider" Gypen...
After showing that one of the known pitfalls of Linux isn't as bad as most expected, it's about time to get things into gear and show one of the strengths of Linux. It's a known fact that Linux (or any other flavour of 'Nix) is a great OS to run on that low power, the-day-before-yesterday's-generation hardware. That's because the strength of Linux lies in its Command Line Interface (CLI). While scary to those who are used to point and click, CLI offers a no-nonsense, straight to the point and low-overhead powerhouse.
Many accustomed to graphical interfaces find the CLI old and obsolete. But they just don't grasp the strength of the interface. Since most things in Linux are done through the manipulation of (small) files, there often is no need for some eye candy. With a relative small number of commands you can totally change the functioning of a Linux system. CLI isn't hard to learn and Linux offers a great tool for learning it, the “man” pages.
But enough of the chatting, Brett asked me to write a guide on how to install a home file server, with a GUI (sigh). In addition to that, he wanted it to run headless, thus requiring a remote administration. Also, a web-based P2P solution was offered to run on the box, so that you can shut down your power hungry workstation, and leave the downloading for the economic box. And to finish things up, I'll briefly touch the area of scripting. Scripting is the edge that Linux has to offer over Windows - Mac users will know of it a bit if you are familiar with Automator. Most tasks can be automated through scripts - a (lesser) known saying in the Linux world goes: “If you need to do something more than 3 times, you should write a script for it."
But enough of the chatting, lets get this party started...
Build your own server Serve Me! Build your own server Serve Me!
Scared of command lines and Linux? Don't be. We'll take you through step by step to
build one of the most useful boxes you could ever get your hands on - from spare parts.
As already touched in the introduction, Linux needs next to no hardware to run on. I know plenty of people who run a Linux gateway on a old 486. That is an impressive clock speed of 16MHz! Unfortunately we aren't building a gateway right now. Given the requirements of this article, we need something a lot more beefy. Certainly things like an X- and web-server require a fair bit more power. Certainly the X server.
That's why I chose Xubuntu. Ubuntu is considered as one of the most newbiefriendly distributions out there, but it uses the heavier Gnome window managers, while Xubuntu uses XFCE. Minimum requirements for Gnome are a 500MHz CPU, opposed to the 133MHz needed for XFCE. However, since our box will be multi role, the minimum specification of 133MHz might be a little low. Don't get me wrong, all will work, but not as smoothly. Anything 750MHz or up will do just fine.
RAM wise, Xubuntu once again is the limiting factor. The install requires 192MB to complete. Afterwards, the system isn't as RAM hungry, so 192MB should be plenty. In the area of disk space, we are building a file server so the more the better. The OS doesn't require a lot, about 2.5GB. Disk space is considered to be cheap, so nothing problematic on this front either.
Basically, anything halfway decent from two years ago will do. Maybe you could use that hardware you had to throw out to run Vista? In case you have some lesser hardware lying around, don't fear. By letting go of the GUI you can lower the requirements quite a bit. Also, all Linux flavours are different, yet so similar. To get the requirements down you can just use the “Ubuntu Server” install. Then you won't get the GUI, but none the less all will function. If you want even more control, try another distribution, like Debian or Gentoo if you are feeling lucky.
Personally, I've 'assembled' a virtual PC, thanks to the guys over at VirtualBox. The system has 256MB of RAM and 10GB of disk space at its disposal. For those of you working on a real machine, here's a tip - the first thing I do when I build a server is walk around in the BIOS. I then disable all unneeded things that I discover on my journey.
If it isn't needed, turn it off. That way it can't break.