Make your own Windows home server OS

Microsoft’s decision to pull the plug on Windows Home Server (WHS) is interesting to say the least. It’s decided to fold the OS into the new Essentials version of its upcoming Windows Server 2012. You can read about the move in the company’s product PDF at tinyurl.com/779nytz. Basically Microsoft reckons WHS saw best use among the SOHO environment and the ‘technology enthusiast community’. So rather than keep it going it wants these users going for Windows Server 2012 Essentials instead – or at least that’s how I read it.

There’s just one slight discrepancy: you can still buy WHS 2011 for around $50 as an OEM disc from a number of local retailers on www.staticice.com.au. What’s more you’ll still be able to buy it as a standalone OS disc until December 31 2013 or as an embedded release until incredibly December 31 2025.

However if you read the new licence costs for Windows Server 2012 Essentials from tinyurl.com/cyo33z4 it’s clear why Microsoft wants users going to Windows Server 2012 – even the Essentials version will cost you a cool $425. So clearly it’s time to start thinking about WHS alternatives.

Where to start

At this point it’d be very tempting to say ‘see you later’ to Microsoft and latch onto one of the many free Linux distros that can be pressed into the role of a home server OS. I even developed a couple of UserOS Home Server Linux distros for PC User magazine over the last year or so. One thing that led me to develop those distros was the lack of alternatives – at least alternatives that didn’t just rely on a command prompt. Running a typical Linux server OS with little more than a command prompt is almost a badge of pride among some Linux users.

But there’s no reason a server OS can’t have a desktop environment and equally there’s no reason why a desktop OS can’t be pushed into a server environment if you add in the bits you need. So it raises the question: if you want to stick with Windows because it’s easier to understand can you press a Windows desktop OS into the role of a home server OS? The answer is very definitely ‘yes’.

What a home server OS needs

The simplest way to construct a home server OS build is to simply consider the functions you need it to perform. Everyone has different needs so it’s a case of looking at the specific function requirements seeing what the desktop OS can already do by itself and supplementing it with free apps from the web of which there are plenty. It’s completely unorthodox for sure but if you have a decent Windows OS you’re not using for anything else there’s absolutely no reason why you can make it work in a home server.

NAS

I’ve always been impressed with the features list delivered by many of the home-grade NAS boxes from the likes of Synology and QNAP. They’re quite extraordinary when you consider what these nuggetty little Linux-powered devices can do. So when designing my UserOS Home Server releases I unashamedly looked to see how I could replicate as much of their functionality as I could.

I think it’s no different if you’re trying to do the same thing with Windows. Some features are easier to implement here than in Linux while others are harder (or at least cost money to implement). If you take a look at some of the specs of home QNAP or Synology NAS boxes there’s a decent list of features you can replicate relatively easily.

So let’s take a look at some major feature groups you’d expect any good Windows home server to have on board:

1. File/print serving

Any Windows desktop OS can eat up file and print serving straight out of the box. You simply turn on file and printer sharing and create your share folder. Then set up your printer share it and that’s about it. Printing from mobile devices isn’t exactly easy and typically requires printer-specific apps from printer vendors although accessing server folders from your mobile device should be fairly easy. On iOS grab and download FileExplorer from the App Store; on Android look out for ASTRO File Manager or ES File Explorer (both support network file access) on Google Play.

2. Remote desktop

Normally a server OS is remotely monitored via a web browser over the network. However there’s no reason why you couldn’t simply implement a remote desktop setup. TightVNC is perfect for this – it’s free comes as both server and client halves for Windows has password access and allows you to see and access the server OS over your network. Configure TightVNC’s server to launch as soon as the server boots up and you can use it as a headless (no monitor) system.

If you’re using Linux clients on the network as well install Remmina (it’s part of the Ubuntu repository so just run sudo apt-get install remmina). It’s a great remote desktop client and it’ll connect via TightVNC on your Windows server giving you control access.

Obviously running a remote desktop on mobile devices is a little more difficult given the typical screen size but grab android-vnc-viewer from Google Play and it’ll talk to your server’s TightVNC setup.

3. BitTorrent

It’s one of the more common features you’ll find in many NAS boxes these days and a BitTorrent server is something you can implement with your favourite client. Personally I’d go for something lean and light like uTorrent so that it doesn’t load down the server. Be aware that if you’re running your BitTorrent client 24/7 it may affect other more CPU-intensive apps such as media and DLNA streaming although that’ll be more a function of the hardware platform you use. Most clients will run on anything from Windows XP up.

4. FTP server

FTP (File Transfer Protocol) might seem old hat these days but it’s still a simple protocol to implement for moving files around and the easiest way to set up an FTP server is to use something like FileZilla Server. It’s free and runs on any version of Windows from XP Home Edition up. And it obviously couples up nicely with FileZilla’s FTP client on Windows and Linux.

5. UPnP/DLNA server

Music and video servers have become big business over the last couple of years as everyone wants to view their content on anything but their PC screen. UPnP is just one of a number of networking protocols that makes this happen and it’s a system of two halves: a server sending the media files and a client receiving and playing them.

Just to make things slightly more complicated many new TVs use a subset of UPnP called DLNA. Since version 11 Windows Media Player (WMP) features a built-in UPnP/DLNA server; in fact it’s the old Windows Media Connect feature added in. WMP 12 is the latest release built into Windows 7 and 8. If you’re using Windows XP as your home server OS grab WMP 11 and you’ll get UPnP server support.

Another free option is XBMC although for a server it’s probably overkill even though it has its own UPnP server built in. An arguably more suitable option is Llink. It’s open source and has some good features including UDF2.50 support so it’ll handle basic single-layer Blu-ray disc ISO playback along with standard DVD movie ISOs. It also has on-the-fly transcoding support.

6. Automated remote client backup

One of the most important uses of a home server is to hold backups of important files from one or more client PCs. There are a number of good client-side apps such as EaseUS Todo Backup Free 5.0 and Cobian Backup 11 which will back up files from a client to a network drive (Cobian Backup can run as a background service). They can even be scheduled to perform the backups (full or incremental) automatically.

However all of the free versions of these apps require installing on every client so while you can perform an automated backup of a client it has to be done at the client. A better option is a server-side remote client backup and that’s what UrBackup does. It comes as two halves: a server-side app and a client app both designed for Windows (you need both installed for the server to recognise the client). You can schedule the server to begin specific folder backups on multiple clients.

Another remote client backup tool to look at is Amanda. Although there’s a payware enterprise version there’s an open-source community edition which will also do the job. You can grab the server-side app from here – select the latest version (3.3.3 at the time of writing) and scroll right to the bottom for Windows 32-bit and 64-bit releases.

7. Media Streaming

I’ve talked about media streaming before and how I reckon we should divide it into two types: passive (file serving) and active (file transcoding) streaming. A genuine media streamer takes media files in any format and feeds them to a client in a specific format required by that client. In a PC environment media streaming just isn’t necessary since every (Windows) PC has access to every audio and video codec imaginable anyway. However for dedicated and mobile devices such as TVs and tablets where codec support is more limited a live on-the-fly media streamer can be very useful.

Plex Media Server is one of the better solutions available. It’s a commercialised fork of XMBC and while you have to pay for the mobile clients (Android iOS and Windows Phone 7 are supported and are around $5 each) the server app and client-side Plex Media Center apps for Windows and Mac OS X are free.

One of the most popular options for iOS devices is Air Video and again the server app is free while the client will cost you a princely $2.99. It’ll transcode videos to iOS’s standard H.264 format. There’s a limited-function free iOS version called Air Video Free which’ll give you a taste of how it works. You’ll need Apple’s Bonjour Print Services app installed on the server but iTunes will give you that anyway. If you don’t want iTunes grab Bonjour as a standalone installer from support.apple.com/kb/DL999.

Don’t want to run iTunes? I don’t blame you. Air Playit is a good first-stop alternative. It has client apps for iOS and Android (both free) and you can download the server for free too. It’s not quite as slick as Plex but it’s on a par with Air Video in terms of the user interface. If you can plug your tablet or smartphone into your TV via HDMI you’ve got a neat network media player solution right there.

Got a Sony PS3 console you want to stream your media to? Grab PS3 Media Server. On its own it’s a DLNA-compliant UPnP server and it’s also loaded up with MEncoder and FFmpeg so it’ll transcode your files to other formats on the fly. It’s written in Java but there’s a Windows installer available from the web site that you can download and install.

8. Music server

Another common feature that you’ll find in most NAS boxes an iTunes server has actually been hard to replicate even for NAS box makers as Apple continually tweaks its iTunes software. Most iTunes server apps rely on some form of Apple’s DAAP (digital audio access protocol) and recent changes have seen many of them break in recent times. However if you’re running a standard desktop version of Windows as your server you just need the iTunes client.

You can share your music folders by selecting ‘Edit > Preferences’ clicking on the ‘Sharing’ icon and selecting ‘Share my entire library’. The only issue is that you need iTunes running on the server the whole time otherwise other iTunes clients on the network won’t see your shared music (read more at support.apple.com/kb/HT2688).

Similarly WMP 11 and 12 can also share your music over the network. Just launch WMP and select the ‘Stream’ option – you can choose to access your music over the internet or just within your homegroup on your local network.

If neither of those options grab you you can try Icecast which is supported by a range of media players including VLC Winamp and foobar2000.

9. Virtual hard drives

If your home server is going to be shared between users the problem with having an all-in-one storage setup is that anyone could grab more than their fair share. That’s where the idea of virtual drives comes in. To those outside the server the drive will look like a standard network-accessible drive once you share it but it’s actually just a file that resides on the server. The standard Windows 7 Home Premium release allows you to create virtual drives quite easily. It’s a perfect way to allocate storage on a per-user basis without having to bother with separate partitions.

We don’t have the space to cover it here although you create them using Windows Disk Management. Go to ‘Action > Create VHD’ and then choose the type size and location of the virtual drive. It’ll appear in the &apos;Disk Management&apos; window where you can initialise and format it as a (seemingly) normal Windows drive as well as share it across the network. You can create VHDs up to 2TB in size in Windows 7.

Do it yourself

Ideally it’d be great if Microsoft kept WHS ticking over for longer than the end of next year. At least rolling your own is Microsoft independent and works on any version of Windows from XP Home Edition up. So if you’re thinking about building a home server don’t let the demise of WHS stop you. Use the Windows you’ve already got.

Tip: Basic hardware considerations

Choosing your version of Windows as the base for your home server OS can’t be done in isolation to the hardware you plan to use. If you’re going to use an UEFI BIOS motherboard for example that rules out Windows XP and likely the RTM version of Windows Vista too. Plan to use hard drives larger than 2TB and that knocks out Windows XP again.

A simple rule of thumb would be to use the version of Windows that matches the era of hardware you plan to run it on. For example if you’re using an older Intel Core 2-series PC Windows XP or Vista should be fine; if it’s a new Ivy Bridge-class Core i5 box I’d choose Windows 7 to at least ensure it boots up.

I know this is an old article, but I have to add – What about security? FTP and VNC are not encrypted by default whereas RDP is. (Not a big deal if you’re accessing them from home, but if you’re trying to access them from outside of your home, RDP would be far more seamless and had encryption built in. My suggesion would be to use a Pro version of Windows 7 which includes RDP server. FTP is a little harder to set up with encryption. You’d need to set up FTP over SSL. Otherwise even your password is sent to the FTP server in an unsecure manner.