Build your own NAS

I have a need for a lot of storage at home. Most of it is for my ripped DVDs and Blu-ray discs (see my post about Plex here) but also for running Time Machine for my three Macs and having a central library for all our music. Before I had the solution i have today I had a HUUUGE full tower case with six or seven disks of different sizes. No redundancy at all JBOD. I used Debian GNU/Linux as the operating system because I didn’t just use the machine as storage but also for hosting different web pages and web front ends for different stuff at home, also running a few game servers (like Minecraft).

This huge case was not only cumbersome to hide but it was also on the noisy side with it’s five-six fans. I was looking to buy a real NAS as a replacement but I had a hard time finding one i liked. There was also a problem to move all the non storage services, i could move the webpages to a web hosting company but it wasn’t easy to find a cheap place to host servers. I have a 100Mbit full duplex connection at home so there was really no reason to find one either. I decided to build a small Mini-ITX computer to for the server part and a NAS for storage.

But when i was looking for Mini-ITX cases i found one very interesting case from Fractal Design. The Fractal Design Arrary R2 NAS case.Array R2 front

It had place for up to six SATA drives, one slim SSD and a Mini-ITX motherboard. Just one big 140mm fan for cooling instead of six in the old case. I instantly decided that i would buy it and yet again combine the storage and server in one (albeit much smaller) case.

Full specs on the case here

I then went looking for a Mini-ITX Sandy Bridge motherboard with at least six SATA connectors on it. In the end i bought the ZOTAC H67-ITX WiFi. There might be some better alternatives now but this was the best i could find. I also added a cheap Sandy Bride I5 CPU at 2.80GHZ and decent 8GB DDR3 1333MHZ RAM from Corsair.

I also bought a fast 1TB disk to use as system disk. SSD wasn’t an option as this was a bit on the cheap side. Then i threw in 4x 2TB 5400RPM silent disks from the Samsung Eco Green line.

That completes the actual hardware for my new NAS system. I decided to stick with Debian as the operating system but if you’re not as fluent in Linux talk you can easily install a Linux distribution for pure NAS systems like FreeNAS or unRAID.

Might do an installation guide later on when i have a bit more time :)

Sync multiple calendars with Google Apps and iPhone

If you, like me, use Google Apps to manage your email, calendars and other things you might have run in to problems when trying to sync multiple calendars to your iPhone or iPad.

You setup your account on your phone and everything is working perfectly until you notice that, by default, Google only syncs your default personal calendar and not the others. For example, at home we have a shared calendar for things like laundry bookings etc and it is kind of pointless if i can’t access that from my mobile device.

Google has this help page about syncing multiple calendars. The guide states that you just need to open http://m.google.com/sync in Safari, select the device you want to configure and then choose what calendars to sync. Sounds easy enough, but you might run in to problems here. When you open this link and have the language set to anything other than english (swedish in my case) you will be presented with an error. “Device not supported” (localized of course). There’s nothing about this on Googles help page but there is a solution. If you look at the bottom of the page with the dreaded ”Device not supported” message you can change language. Change your language to english US and suddenly the page works fine and you can configure what calendars you want to sync.

Plex, the ultimate media center solution?

Intro

Being a total Movie and TV nerd has had me searching a lot for a media center solution that fits all my needs. “Why don’t you just buy a Blu-ray player and be done with it” you say? Because I really hate changing discs, waiting for load times and i’m tend to misplace a lot of discs. I also want to be able to stream my content to smartphones and tablets as well. The reason i chose Plex in the end is that it has all of these things, and more. This post will be a write up about why i enjoy using Plex so much, but first let me start with a little bit of background.

Background

I first started watching movies and TV in digital format around 2000 when i became a full time student. I didn’t own a TV and the only way for me to watch anything was on my computer. These days i didn’t store anything for long, i just watched a movie and then deleted it after a few weeks. It was simple. Later during my time at college i got a cheap TV and solved everything by just hooking up the computer to it. It was easy since I lived in a small one room apartment.

First media player

I had moved in with my girlfriend and we had bought a nice big plasma TV. We still watched movies by hooking up one of our computers to it. Only problem was that it was in another room and we had to have cables running on the floor, and we had to switch computers a lot when one of us wanted to watch a movies and the other surfing the web. The solution was to buy a proper media player. There was only two brand really sticking out at the time, Tvix and Popcorn Hour. I went for the Tvix 4400SH. It had a built in HDD of 500GB, support for NFS/Samba for streaming over the network and wireless support with an external USB dongle. All it really did was present a file structure on your TV so you could browse your movies and play them. Great at the time but I felt it was missing features to make the user experience enjoyable. It also had a lot of firmware issues and you needed to switch between different versions a lot.

Plex

I first found out about Plex at a friends house and was impressed by how slick the menus and navigation was. Then when version 9 of Plex was released and the unibody Mac Minis with HDMI was released i went ahead and bought one. At this time Plex was OSX only.

Compared to most other media center software solutions Plex has a client/server architecture. This means that you have a central library that handles all your metadata and the information is the same on all clients you use. When you install the software for the first time on your Mac you get some questions about where your movies, TV series and music are located. The Plex media server then scans these folders looking for media files and tries to match these online and download metadata. There are metadata agents for covers, plot, score, subtitles etc. And if your movie isn’t matched automatically you can easily do a manual search for it. Suddenly your library looks very well organized.

Plex media server

The media server of Plex is the part that handles your media library and serves content to all your clients. It currently runs on OSX, Windows and most recently on Linux (including ReadyNAS and unRAID). You either use a web interface or if you are running OSX you can also use the native Cocoa application.

Plex movie library

Web interface of Plex media library showing a movie section

On left you have your library sections. As a default you’ll probably have one for movies, one for series and maybe one for music. On the right you have the items in your current section, complete with automatically downloaded covers. If you want more information about an item you just double click it. From here you can also do a refresh of metadata either for a single item or for a whole section. If some items didn’t match correctly you can also do a manual match and hopefully find the movie you are looking for. If you can’t even find your movie with a manual match you can always edit all the data manually.

Plex metadata edit interface

Metadata edit interface

You can run any number of media servers on your home network and all of them will show up on your respective clients. There’s really no reason to run more than one though, it kind of defeats the whole purpose of a central library. The media server also handles transcoding on the fly for you phone and tablet clients so you can watch a 1080P movie on your phone using 3G. The quality (bandwidth) can be set manually in the client. Read more about the transcoding engine in plex here.

Plex for Mac client

This is the client i run on my Mac Mini connected to my TV set via HDMI. It has a really nice and slick interface that is easy to navigate and also skinnable. So if you don’t like the look of the default one you can always check in the Plex forums for a theme more of your liking.

Main menu in plex for mac

Main menu in plex for mac

Plex for mac series menu

Plex for mac series menu

Plex for iOS

There are also clients for the iPhone and for the iPad. They both have the option to either watch content from your library or use it as a remote for navigating Plex for Mac. You can also navigate your library on your phone or tablet and choose to start playing it either on your device or on your TV.

Plex library on iPad

Plex library on iPad

The great thing about having a central library is that if you start watching something on your iPad while commuting and you want to finish watching it on your TV when you get home Plex gives you the option to resume your movie where you left off when starting it at home. There are also indicators informing you if a movie/series has been watched, started or not watched.

Other clients

  • Plex for Android
    I have not tried this one my self since i don’t own an Android phone but i presume it has the same look and options as the one for iOS
  • Plex for the Roku
     If you have a Roku media player at home you can use it for playing media from your Plex library.
  • Plex for LG
    Do you have a LG Media Link enabled device at home? You can play your Plex library on it.
  • Plex for Apple TV
    This client isn’t official and you need to have a jailbreaked ATV2 to use it.
  • Plex for Samsung TVs
    Same here, no official client (yet?) and it’s a bit tricky to get installed but looks promising.

Conclusion

I simply love it. Hope it works out for you as well.

Spotify invites for US users

Spotify is a really great service and I’ve been a premium subscriber since they released their mobile apps for Android and iPhone. Since a few weeks back it is also available in the US and the desktop application has been bugging me about “Be nice to your US friends. Send them a spotify invite now”.

I check the link and apparently i have 38 invites left so if anyone who reads this need and invite or if one of your friends needs one just contact me with your email address and I’ll send one to you.

Minecraft Overviewer

Show me that Minecraft Overviewer

Me and my friends play a lot of Minecraft and as you all know it can be hard to get a grip on how your world map actually looks. A few days ago I stumbled over Overviewer by chance. It is a really cool Python project that can render a large resolution image of your Minecraft map and use the Google Maps interface to navigate it.

For a demo of how it looks you can check our current world we are playing here: minecraft.hb0da.org

Installation

You can run Overviewer either on your server machine or a machine with just the client. In fact, it’s easier to run it on a machine with the client installed on. I chose to run it on my server so i could set it up to automatically render updated maps once a day.

The installation on a Debian or Ubuntu machine is as easy as they come. Just add the following to your /etc/apt/sources.list

deb http://overviewer.org/debian ./

Then update your sources and install Overviewer

apt-get update && apt-get install minecraft-overviewer

Now if you haven’t got Minecraft installed on your server you need to extract the terrain.png file from a client installation. It is located inside the minecraft.jar file which resides inside the bin folder of your Minecraft data dir. After you extract it you need to put it in the same directory as Overviewer on your server.

Usage

Now it is time to render your first map. Make a copy of your current world folder since Minecraft is a bit picky if you fiddle with it while the server is running also make a directory for the html output. Now for a simple test run

overviewer.py --rendermodes=lighting /path/to/world /dir/for/html/output

The first render on a world can take a long time but after that all the updates are incremental so you don’t have to render the whole world every time just the latest changes.

Either download the output and open it up locally or put it in a directory on a web server. I run apache2 on the same machine so i just point the output to the minecraft.hb0da.org vhost.

Now if it works and you want to automate it just put the command in a cron job (don’t forget to get a fresh copy of your world) and run it with a set interval.

Make sure to check out the Overviewer wiki pages on Github for more advanced rendering options

Links