Saturday 13 April 2013

Raspberry Pi Home Server

This post and subsequent posts will help you to create your own Raspberry Pi Home Server. Before we start, we should plan the features that we want the server to have:

  • SSH Connectivity for connecting remotely. This will remove the need for screens or keyboards attached to the server.
  • Network File Sharing using Samba. This will allow us to use the Pi as a backup machine, and as a cheap NAS Drive.
  • Web Server. This will allow us to create a homepage linking to some of the functions of our Pi. It will only be a simple page, so LightTPD should do the trick, reducing the need for a full LAMP server.
  • We should be able to monitor the performance of the Pi using Monitorix.
  • We should have the Pi act as a wireless speaker system, accepting both Bluetooth and AirPlay connections.
  • We should have a server for storing and playing music remotely on the Pi
  • The Pi should be able to backup other Network Drives.
  • The Pi should include a Transmission Torrent Server for downloading large files without needing to keep a more power hungry PC on overnight.
  • The Pi should act as a DLNA server for streaming media to games consoles.
  • The Pi should have a Static IP to ensure that the server can always be accessed at the same address. This address should be outside the DCHP range of the Router.
  • Optionally, the Pi should be able to share the files with a cloud based online system with software like OwnCloud.
The distribution we will be using is Moebius. It is far more efficient than Raspian, and it boots incredibly fast. This should allow us to put a greater workload onto the Pi, as it will not be as preoccupied with system tasks than it would be with other distros. Moebius doesn't come with a desktop, but that shouldn't be an issue given that we will be creating the server entirely through the command line. Desktops such as OpenBox, XFCE, and LXDE are available to install should you require them.

Now lets run through what we will need to create the server:
  • SD Card (8gb minimum for all server features)
  • Raspberry Pi (Model B preferably for the ethernet and extra USB port)
  • For initial setup, HDMI Cable (& monitor) and USB keyboard.
  • Compatible Bluetoth Dongle
  • External Hard Drive for the Backups & Torrents.
  • Ethernet cable
  • Optional WiFi dongle if you don't want to use Ethernet
  • Optional USB Hub (Might make life a bit easier if you don't plan to use SSH)
  • Another computer to burn the SD and to connect via SSH.
  • 3.5mm Jack Compatible speakers for audio playback
  • Optional USB Sound Card (To improve the Pi's lacklustre sound)


That should  be all we need, not an awful lot to ask, given that you should be able to salvage most of this from other devices.