Build a Linux Home Web Server For Under $250
Now-a-days pretty much everyone and their hipster grandmother is blogging, publishing web articles or sharing some sort of digital content with free online services such as Google, Facebook, Flickr and Youtube. These are all great no cost options for putting content online, but a poor substitution for a feature rich web server.
If you're looking to setup a website or go beyond the basics, paying a hosting provider is usually the way to go. But there is a cost associated with doing so.
How would you like to escape the monthly service fees of web hosting or gain full control over features, data and privacy? Well, one solution would be to host your own Web Server.
The term Web Server can refer to either the hardware (a computer) or the software (an application) that serves content accessed through the Internet. This document provides hardware and software recommendations for building your very own Web Server all for under $250.
Build Objectives
- Low power consumption
- Silent operation
- Generate little heat
- Small form factor
- Under $250 budget
Hardware Recommendations
Building a Web Server requires some hands-on assembly of standard PC hardware components. If you're not comfortable doing so, I would suggest having a friend help you out, or refer to one of the many tutorials available online. Choosing the right hardware can also be an involved process. Some common considerations when building a Web Server are performance, form factor (size) of components, cooling, storage capacities, minimal acoustics (noise reduction), compatibility and cost.
We receive a lot of email requests seeking recommendations on which hardware is supported and best suited for projects like this. So for the benefit of anyone seeking some related hardware recommendations, here is my list.
The Hardware Build
Before getting started, please note that this build does have it's limitations and is intended for home or small office use on a Broadband connection.
Motherboard & Processor
The Intel D525MW is an energy-efficient Mini-ITX Motherboard, built with the Intel NM10 Express Chipset, featuring an integrated Dual-core 1.8 GHz Intel Atom processor D525 and Intel Graphics Media Accelerator 3150 graphics core.
Supporting two slots of single channel DDR3 memory at 1066/800 MHz (up to a 4GB maximum), along with integrated VGA, Gb LAN, two SATA II (3 Gb/sec.) connectors, PCI, seven USB 2.0 (Back + Internal), RS-232 COM, and six-channel high definition Audio2.
This desktop board gives off very little heat and utilizes passive cooling which means there are no spinning fans generating nose when powered on. Best thing of all is that there isn't a need to purchase a processor, video card, network adapter or heatsink with fan, everything we need comes with the Intel D525MW Mini-ITX Motherboard. Thus making it an excellent platform for our build.
Storage
Storage requirements for our Home Web Server build should be relatively modest. So I've focused my efforts on selecting a Solid State Drive (SSD) that will provide better performance, low power consumption and generate no heat compared to a conventional mechanical hard drive with a large amount of disk space.
For this component I'm going to recommend the OCZ Vertex 2 60GB hard drive. Vertex 2 features the popular high speed Sandforce controller and high performance MLC flash memory. It is rated at a 285MB/s read and 275MB/s write with sustained writes of up to 250MB/s on a second generation SATA interface running at 3.0 Gbit/s
One thing I love about OCZ SSD products is that they include a 3.5-inch desktop adapter bracket with their drives. This bracket allows you to install the SSD in a conventional 3.5-inch drive bay. Saveing you from having to buy a 3.5" to 2.5" drive bay converter if you ever decide to install your SSD into a large desktop chassis.
Memory
Crucial's 4GB DDR3 memory kit for the Intel D525MW Motherboard is the perfect fit for our build. These 2GBx2, 204-pin SODIMM, DDR3 PC3-10600 memory modules will fully populate the dual in-line memory module slots on the motherboard with a maximum 4GB of system memory.
As with all Crucial products, these SODIMM modules come with free shipping, a life time warranty and of course made by one of the best memory manufactures in the business.
Chassis
Typically a web server would be left powered on and running 24/7, otherwise it isn't doing it's job. With that in mind it was important for me to select products that conformed to our objectives. The chassis was no exception. We needed an efficient case that took up very little physical space. I found this in the Antec ISK 300-65 Mini-ITX case.
The Antec ISK 300-65 has a 0.8mm cold rolled steel frame with exceptional build quality. Measuring in at 3.8" (H) x 8.7" (W) x 12.9" (D), the chassis can lay flat or in vertical position on the supplied stand. There are three drive bays, one slim optical 5.25-Inch external and two 2.5-Inch HDD internal. Front panel features two USB 2.0 ports, 1 eSATA, and an audio (AC'97 and HDA compatible) In and Out. There is also a half height expansion slot in the back with side cooling vented by an 80mm TriCool 3 speed exhaust fan.
A primary reason for me choosing this chassis was due in part to the included 65-Watt external AC to DC power supply adapter. Not only does lessen physical footprint, but the heat generated is outside of the box, thus in turn providing better cooling and near silent operation.
Total Cost Of Hardware
Intel D525MW Mini-ITX Motherboard $73
OCZ Vertex 2 60GB Hard Drive $79
Crucial 4GB Memory Kit $22
Antec ISK 300-65 Chassis $69
Total cost: $243
Internet Connection
As mentioned previously, this build is intended for home or small office use with low to moderate levels of web traffic. A Broadband DSL, Cable or Fiber to the Home (FTTH) connection to the Internet is required to host your own web server. I assume you have such a service and fully understand that performance will vary based on connection speeds.
Having a static IP address is convenient, but not absolutely necessary. If your Internet connection uses dynamic addressing and you have a domain name, I would suggest taking a look at a free dynamic DNS service. Also while we're on the topic of connectivity, be sure to forward port 80 to the web server if using a router.
Operating System
I intentionally excluded a keyboard, mouse and optical drive from our hardware list because it lowers the build cost and shouldn't be required after initial installation. Simply use a USB thumb drive to install an Operating System, or temporarily connect a SATA CD-ROM drive and remove once installation completes.
My recommendation for a Linux Operating System would be Debian. A graphical desktop is not required as you'll most likely want to remote SSH into the server. Also, for the sake of security, I'd strongly advise you to use SSH public key authentication and change the default SSH port.
Web Sever Software
Apache HTTP server is the most widely used web server software on the Internet. Unfortunately the installation and configure of Apache is beyond the scope of this article. However, I do plan on writing a HowTo install & configure Apache document at a later date. You may also want to check out our learing about Linux guide or reference some of our easy to follow Linux HowTos.