glennji.com

Because life's too short to do it the RIGHT way

Homebrew always-on server

Required: A small, low-current-draw server to act as file-storage, database, version control, asterisk controller, security-system ...

== Hardware ==

For me, the hardware requirements are that the server be small enough to fit on my bookshelf, and low-powered so I can leave it on all the time. This points to: a mini-ITX motherboard and case, as the nano ones are still too expensive, and; an AMD Sempron CPU, as it has the lowest power requirements.

Add to this some RAM (1GB should be enough for now) and hard-drives such as the 500GB from Samsung - reputably quiet and cool, and often used in media centres. So something like the Biostar IDEQ AMD Sempron 3300+, with capacity for 2 SATA drives and up to 2GB PC3200 RAM, looks ideal!

== Software ==
For the operating system, I've chosen Ubuntu 7.10 Server, a [[Linux]] distribution. You could just as easily use Debian or another Linux distro, or OS X Server. The good thing about Ubuntu and Debian is the APT installation system - installing many of the software packages listed below is as easy as typing "sudo apt-get install {package}" on the command line.

There's no point having an always-on server if it's not doing anything. Before anything else, install:
* [[Webmin]] Administration - A nice [[web-based GUI]] for administration of the server.

Some other ideas are:
* [[Amanda]] backup.
* [[Asterisk]] VOIP Server.
* [[Azureus]] Bittorrent Downloader - A [[Java]] app, but can be run "headless".
* [[BIND]] DNS server - resolve local names (because the ADSL router can't).
* [[Cfengine]] configuration engine.
* [[FreeSwan]] VPN.
* [[Icecast]] Streaming Server - MP3 streaming audio which can work with MPD.
* [[Mediatomb]] UPnP - With 1TB of file storage, this will be an ideal repository for video, and [[UPnP]] is a standard protocol for streaming video and audio content.
* [[MPD]] Music Player Daemon - remote control music playback.
* [[MySQL]] Database - many other services need or benefit from a "real" database (as opposed to the file-based SQLite), and it may be useful for making your own data-centric apps.
* [[Nagios]] system monitoring
* [[Samba]] Windows File Sharing - if you have Windows clients.
* [[Subversion]] Version Control - always handy for developers.
* [[Shorewall]] network firewall.
* [[Streamripper]] for recording Internet radio streams into individual MP3s
* [[TheLastRipper]] for recording Last.fm radio streams into individual MP3s.
* [[Zoneminder]] Security System.