My Ubuntu Home Server

I recently found the need to setup a home server to do backups and to store common files that are needed around the house. So, I had a computer lying around doing nothing (a pretty decent machine actually) and decided that I would use it for a home server. The operating system of choice was a really easy decision because of how much I have enjoyed using Ubuntu since I switched from Windows.

Basic Home Server Specs

  • Celeron 440 2.0 GHZ processor
  • 160gb SATA Hard Drive 7200rpm
  • 2GB DDR2 RAM

Whats On My Server?

The purpose of the server is mainly for storing and sharing files. The other big thing was that I wanted it to talk to the various Windows machines in the house and to my Xbox 360.

First in the process of creating the server was obviously to install the operating system. As mentioned above I decided to go with Ubuntu 8.04 server edition. Once the operating system was running there were a couple of configs that needed to be setup and software that needed to be installed such as setting a static IP for the machine and installing basic admin tools like SSH.

When all the basic configs were out of the way I immediately setup Samba. Samba allows you to share a Linux machine with Windows machines. Installing Samba is really easy and Ubuntu server edition comes packaged with it pre-installed. There is pretty much no config required, once installed you can start sharing files with Windows machines.

The next thing I had to install was uShare to stream content from the server to my Xbox 360. uShare lets me easily access all the media that I have on the server and view/play it directly from my Xbox 360. If you want to do the same with your Xbox 360 but don’t know where to start, check out this tutorial which will show you how to get it all setup in a few easy steps.

Lastly I wanted to create my own software repository. I haven’t got this working 100% yet but basically having the repository allows me to download software/system updates once and then update multiple machines through my server. In the repository I am not just storing updates but actual software as well and even full Linux distributions…

What I Still Want To Add

There are a few things I need to add to the server before it is a perfect setup. First is obviously another hard drive. I want to get a terabyte drive for the machine for pure file storage/backup. I have another IDE drive laying around that I think I will also add to the machine even though its only 40 or so gigs.

I then still also need to write a couple scripts that automate various tasks. I could obviously download these scripts, but writing them myself is just part of the fun.

Another thing is I also still need to set the machine up so that I can access it remotely. Currently I can only access it on the home LAN but when I travel I want to be able to do small backups and also access important files.

I had a ton of fun setting the machine up and learnt quite a lot in the process. As mentioned it is still a work in progress and I will definitely keep you updated when I do upgrades, install new software etc etc.

7 Comments

  • Tricky, February 12, 2009:

    I did the same thing at home, though I installed Arch Linux. Unfortunately, just as I’d finished setting up my routing correctly that I could work on the server remotely in spite of the dynamic IP address, the HDD gave in and I lost all my hard work. So much for being a backup administrator…

    I’ll be installing another HDD after next pay day (25th) after which I’ll be documenting my progress 0 properly this time.

    :)

  • Tricky, February 12, 2009:

    For local-only routing, if you want to do it, I wrote this expect script to query IS’s servers for the “local” subnets. :)

    http://swiftspirit.co.za/downloads/localroutes.tgz

  • Tricky, February 12, 2009:

    ugh – my sincere apologies for the spam.

    Just wanted to correct my statement. I didn’t really *write* the script so much as I actually *recorded* it and then *hacked* it. ;)

  • Matt, February 12, 2009:

    No worries at all :)

    Thanks for the link to the script!

    My laptop hard drive crashed the other day, so I know how it feels :( Totally sucks.

    I will definitely be following your blog to get your updates once you install your new hard drive. Good luck with it!

  • Tinuva, February 13, 2009:

    For dynamic dns, my favourite is DDClient using it with http://www.zoneedit.com (allows 5 domains for dns for free) for dynamic dns.

    Now I know your domain;s dns is hosted with Mediatemple, but you could always and NS records for lets say home.iarematt.com to point to zoneedit’s servers, then control *.home.iarematt.com with zoneedit while you keep the current part of your domain with Mediatemple, or register a .za.net domain and use them with zoneedit.

    Eitherway my favourite dynamic dns client on linux is ddclient by far.

  • Matt, February 13, 2009:

    Hey Tinuva,

    Thanks for the advice!

    I am gonna sign up with zoneedit this weekend and get it all setup with ddclient. I used to use dyndns, but zoneedit looks cool.

    Will report back once its setup.

    Btw, awesome blog, have just subscribed to it :)

    Cheers,

    Matt

  • Gatzby, September 5, 2009:

    A great project, other fun things to add to the server include ssh tunneling, openvpn, home web server and mythtv.

Leave A Comment