I have wanted (for a long time) to have a small server in the utility closet, which would record digital TV and serve all this to any place in the house.
I also want it to store all of my videos, photos and music. Ooh, and I also want to be able to grow the storage size without copying data.
So I finally bought the hardware and I am now building the dream. :)
It is a HP micro server, in which I now put 4 disks I had still lying around.
The first step was to install Ubuntu Server onto a btrfs file system. I know it is still young, but it does give me all the features I need. (Snapshots, expanding the size of the raid array with no trouble, and of course check summing!)
So, that proved to be a bit tricky, but I have described that here: http://askubuntu.com/questions/87241/how-to-install-using-btrfs-in-raid10-mode
update: turned out I wanted to use raid1 in btrfs instead of raid10! This will create two copies of each block even if you have 4 disks.
First install btrfs snapshot support for apt-get:
sudo apt-get install apt-btrfs-snapshot
Now add ppa support, this will be useful for the next steps:
sudo apt-get install python-software-properties
OK, so next step was to get digital tv recording working, I have chosen to use tvheadend (https://www.lonelycoder.com/hts/tvheadend_overview.html) and oscam (http://streamboard.gmc.to:8001/) to do the job.
I live in the Netherlands in Ziggo area. I installed oscam from the PPA (https://launchpad.net/~oscam/+archive/ppa) and tvheadend from their debian repo as described here: https://www.lonelycoder.com/hts/tvheadend_download.html.
wget https://github.com/downloads/andoma/hts/public.key
sudo apt-key add public.key
Finally, I am using the following config files (links here). Note that you should change the username and password fields.
Next step is getting the media served to my Philips TV which supports DLNA, for this I will try miniDLNA from the following ppa (https://launchpad.net/~stedy6/+archive/stedy-minidna).
My Philips TV needs some recoding before it can play the files recorded with tvheadend.
So I might end up using MediaTomb, but I will first have to test that.
Of course, I want to access my uberNAS from anywhere. But it is attached through a router on a cosumer internet connection. Which means the ip address of the router may vary. I could opt for using dynDNS or something, but I would like to do this myself.
I already rent a VPS, so I am going to use that as a DNS server. I can then use the method described here (http://linux.yyz.us/nsupdate/) to do my own dynDNS. Cool huh?