Picture of Ultimate Pi Home Server

Welcome reader.

First please note: This instructable can be done within a day, but a weekend is certainly recommended.

In this instructable I hope to teach you key skills involved with setting up and configuring a Linux Server. The knowledge used here can be applied to almost all PC architectures so if you don't own a Pi
(Why not dude?) or it's tied up in another project, any old or unused PC will work. In more detail the main skills taught will be:

  • Burning an ISO image to an SD for the Pi
  • Installing an OS
  • Setting up A web server
  • Setting up An SQL instance
  • Deploying a custom cloud network
  • Managing users for the cloud network
  • Setting up a SAMBA File sharing network, which will integrate into an established windows based home or office network
  • Controlling SAMBA users
  • Establishing a static IP whilst using a non-static IP internet connection
  • Using Webmin Console to install packages
  • Using Command line terminal to install packages
  • Carrying out basic commands such as rebooting (terminal)
  • Editing system files with Nano terminal based editor
  • Permanently mounting hard drives within the Linux file system table via webmin
  • Understanding the principal of the Port forwarding function on a home router
  • Setting up a web interfaced bit torrent manager
  • Being an overall IT nerd.

If you're interested then carry on reading. If not, give it a try; you may discover a new hobby.

As the above list demonstrates there's a lot to learn. I definitely feel this is a weekend project. I've followed this process several times and it takes a couple of days at least. Its good to take long breaks because your eyes may begin to become strained and you may suddenly become unenthusiastic about the whole thing.  This instructable offers functions of many different store purchasable products, such as:

The server we'll setup will cost far less than each of these services in the long run and only a fraction of the cost of the combined services. Setting up your own server is not only custom and cheap, its very rewarding. I will be a happy guy if somebody benefits from what this instructable contains or become inspired by what I have done. It took ages to plan and write this instructable. If you learn anything at all or feel this instructable is well written or well documented, please vote for me in the Weekend Projects Contest or the I could make that contest.

I would also like to point out that this is not a comprehensive tutorial on designing a server case. There are details of my case on step 3, however this guide is intended to be a comprehensive software tutorial. So if you get stuck or feel a step isn't too clear, just let me know and i'll be happy to help.

A few tips: Because this takes more than one day, don't just fall asleep and forget what you were planing on doing next. Instead have a pile f post-it notes. This way before you ZzZzzzz... you can jot down anything that needs doing during the next session. I had loads. All over the walls, floors, chairs, desks - you name it! Okay slight exaggeration, but on a serious note they do help. I did use a full stack.  Another tip would be to follow the steps on order. Don't just think "Hmm I like the sound of my own cloud network lets do that first!" The steps are in such an order that each before is most likely required for the current, if that makes sense. Just stick to the order, it'll make life easier. A final tip: don't be limited to what is taught here. Do Think of this as a base for inspiration. Adding more services such as those listed on the turnkey website is easily done using the search APT function within the Webmin Package manager.

Okay, Confused? Then let's learn...


 Caution! This instructable contains 30 steps. Proceed at your own risk. 

Remove these adsRemove these ads by Signing Up
1-40 of 355Next »
desterre5 hours ago

Will this work on a Rapi 2?

duke50311 days ago

Can anyone help? I can't get my FAT drive to work with owncloud. It works with samba, but shows up as NTFS on the network. Help! I can't get chown to work to give owncloud ownership as it says "operation not allowed" in shell. I also can't get chmod to work to change permissions. (I renamed /media/serverhdd to /media/serverfat)


If you are still stuck, worth reading this post that explaining that for a FAT or NTFS mounted drive the chown and chmod don't work as you'd expect (versus EXT4). They need to be set at mount for the whole drive with some exceptions for NTFS (note this has no impact on your Windows permissions for Users and Groups, unless if you have set up user mapping).

On an another note if you have an NTFS drive, that you plan to use with linux worth using windows safely eject drive as one particualr reason is an extra 0 that is written in an unsafe eject can cause mount issues with NTFS-3g mounting in linux. Worth runing windows error checks in that case to reset drive.

I gave up ntfs, and formatted the hdd as ext4, and everything is cool...

I formatted the hdd, and it is ok, now...

Same problem here. No matter how I tried, the NTFS directory permission or ownership is not able to be changed...

AndyRReyna4 months ago

I'm having an issue installing OwnCloud. I get the following error:

Can anyone help? I have follewed the instructions to a "T"

owncloud error.JPG

Try tu run "sudo chmod 770 *" and "chown your_user:your_user *" on that folder from shell login with user on which you run that owncloud server. (obviously "your_user" is your's user name on raspi, default pi)

I have done that and still getting same results. I'm leaning towards the NTFS drive. Perhaps I should covert it to Fat32 and see what happens.

Did converting to Fat32 fix this issue? I really would like to stay NTFS if it is possible.

I would suggest mounting your drive manually using the ntfs-3g driver and editing the fstab file rather than through webmin. Fat32 is only going to make things worse as FAT32 has no support for linux stile (Unix/Posix) file by file permissions whereas NTFS has full support but not the nicest implementation in the linux ntfs drivers.

give yourself superuser status (not the best habit but hey!): sudo su

install ntfs-3g if not already got it: apt-get install ntfs-3g

you need your drive unique identifier using: blkid

edit fstab file: nano /etc/fstab

add to bottom of file: UUID= 204UJ.......(YOUR DRIVE UUID) /media/yourhddlocation ntfs-3g auto,users,permissions 0 0 sudo mkdir /media/yourhddlocation mount /media/yourhddlocation

Save and exit file (CTRL+O, ENTER, CTRL+X)

reboot: reboot

root already has ownership. In fact, I uninstalled Owncloud and recreated all databases. I mkdir new folder with the chmod of 0770 but yet still getting same error. I'm Puzzled to say the least . Any Thoughts???

I had the exact same issue. I ended up having to format as ext4 to get around it.

Janrabbit16 days ago


Did anybody ever find a resolution to the image not booting? Is it just 4GB cards that work? If so then is it not a case of reformatting the card into 2 4GB partitions? or do you actually have to get a 4GB card?

I tried following the instructions to modify a vanilla raspbian image but the instructions are poorly laid out and hard to follow

Awesome, this looks much better. I shall give this a go tonight, thank you.

ChristoO19 days ago

this is where i got my answer from.

$ sudo nano /etc/network/interfaces

auto lo

iface lo inet loopback

# Ethernet interface uses static address:

iface eth0 inet static






marshieee24 days ago

has anyone tried to upgrade ownlcloud 4.x.x to 8.x.x with this? can you show me the step-by-step config? thanks.

I won't work. You have to go through incremental upgrades to do it. I tried it, and it seemed to break everything. The best thing to do would be to start from either a clean Turnkey image as above, or from a clean Raspian image and do not install Owncloud from Webmin. Get this version:

and once it's installed an running you can upgrade to v8 directly within the Owncloud Admin page. If you want, here is a link to the How To I created after going through this whole process more than once. I had to cobble together various parts of this tutorial, and several others before I was successful.

Here's a link to mine:

Arsaces10 days ago

Hey man, great tutorial, I was able to get it working with a bunch of google-fu. couple of quick questions: how would you update owncloud? Currently we are running on 4.0.4, and unsure how to get it any further, all attempts I have had so far of upgrading have caused it to bomb. Is it possible to stream video from owncloud?

ChristoO111 days ago

Next weekend I will give this on a go...

DhruvV14 days ago

Is it possible to make with other linux computer? (not rpi) and same steps?

dcavni1 year ago
No matter what i do this image won't boot on my Pi. Raspbian works, XBMC works, this image don't work. I already tried two different SD cards and no change. Anybody had such problems?
I think so. Can't get anything to happen with this image. :(
DrWilson (author)  jrobinson211 year ago
Sorry to hear that, I cannot understand why it would not work. Are you burning the image using the tools stated in step 5?
Yes, i did it exactly as stated. Ordinary Raspbian burned in the same way works ok.
DrWilson (author)  dcavni1 year ago
Just a thought, did you extract the file, then extract it again before burning? I think (if I remember correctly) the file is in a compressed folder, within a compressed folder - this sounds dark and deep.
Give it a shot,

Hi DrWilson,

I bought a Raspberry PI after reading your Instructables but unfortunately I'm facing the same issue of dcavni. The RaspPI doesn't want to boot with the img in your instructions, while using N00bs the RaspPI boot perfectly.

Am I doing something wrong? Do you remember if there's some extra step to do after flash the img in the SD?

Thanks and congratulations for the project, is really amazing. I'm looking forward to have my personal server.


I have the exact same problem. I tried different SD cards and this version did not boot correctly. Maybe there is an uncompatibility between the OS, the firmware and the SD card.

Did anyone solve this issue ? and if so, how ?

I will update if I find a way.


I found this page on internet that helped me:

My Raspberry has this memory chip from Micron and because of this I needed to update the files in the boot partition.

I tried successfully with another Rasp Server project, because I was thinking that there was something wrong with this one. But now that I know the secret I can try back with this wonderful project.

I hope you'll solve your issue.


dcavni Kyashan1 year ago

And afterwords i colided into problems, that Owncloud did not want to start. On startpage it was written, that i must do chmod 770 to the cloud folder on my HDD, but when i do that it always returns back to 777 by itself. Drive is formatted in NTFS filesystem.

FirstTenor dcavni11 months ago

dcavni - the problem that you have is because your drive is ntfs formatted. This means that chmod and chown don't actually do anything.

To resolve this - unmount your drive (I used webmin for this)

Now use sudo nano /etc/fstab

Find the entry for your drive (probably /dev/sda1 <path you used> ntfs user 0 0)

replace 'user' with 'defaults,umask=007,uid=33,gid=33' and save the file

use webmin to remount the drive (note: you may need to reselect the user & group at the bottom of the display when you do so)

finally restart the browser that you were using & try to connect to 'owncloud' again.

This does set the whole of that drive to that permission setting - but that is ntfs for you.

good luck

Which user group we have to select???????

FirstTenor Kyashan11 months ago

a useful post, thanks. That did look very much like my error and I tried to follow those instructions ... But the SD card is not readable on the PC and my only SD port on the RPi is taken up with whatever I am running from.

I tried plugging the SD card in to the USB port via an adaptor and mounting it (having booted off a NOOBS image) ... Planning to just mv the files across - but fdisk reports that the SD card is not partitioned ... So I now think I need to add the Webmin & shell in a box to the NOOBS Card

... Unless anyone else has a brighter idea .....

Kyashan FirstTenor11 months ago

It's very strange you cannot see at least the boot partition after performed the step 5. Anyway the simplest thing is to perform it again on the PC and not using the raspberry.

First of all I suggest you to download the Official SD formatter to wipe all the data from the SD and after to try again with the step5. This is what I did and other people have done and we're able to boot the raspberry pi

YES! It worked! thank you so much Kyashan

dcavni Kyashan1 year ago

Well, this actualy worked :) Thank you. I'm already installing.

Kyashan dcavni1 year ago

I'm glad you succeed.

Unfortunately I can't help you about Owncloud because I'm still configuring another server release based on Moebius and I didn't reach yet the Owncloud part.

Anyway I'm very happy now that my Raspberry works.

Have a nice weekend

This may seem like an odd question but have you just transferred the img file onto the SD card or did you write it with win32image writer?

Yes, i did double extraction. All files are properly put on SD card. i checked again today, nothing changed. Picture of files on SD Card
1-40 of 355Next »