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 361Next »
cdesangles made it!5 days ago

Works great! I have in the picture:

Raspberry Pi 2
5tb Seagate HDD
Ethernet Hub

I wonder, can you run Plex Media Server and Webmin at the same time?

2015-05-09 13.48.38.jpg
What will b better fir a server and why? Use a raspi or this Odroid-CI, the last one say is gigabit ethernet. Why will raspi b better if i want a server to stream my movies to my devices and storage documents? Thx

Has Turnkey really not been updated since Nov 2012? 2.5 years is a v. long there a newer ISO somewhere or a newer/better distro? I have an RPi2.

Here is a link where it shows you how to transform Raspian into Turnkey. It's better than the one I just commented

I've been using the Raspian distro, it works just fine. You only need to webmin manually (which you can do from here.

Nuts_Boltz8 days ago
Been having same issues with the NTFS format and owncloud. Have decided to format in ext4 in the hope i can continue. Fingers crossed.
Raphango15 days ago

Awesome work dude!

Congratulations for your ible!!

Janrabbit16 days ago

Hey, I'm not too sure what to set as the default download directory so that owncloud users would be able to access the files downloaded, any help would be appreciated.

Getting the Data directory (/media/serhdd/cloud) is readable for other users

Please change the permissions to 0770 so that the directory cannot be listed by other users.

But when going to edit the /etc/fstab file there isn't one so I'm creating a new on.. Any ideas? Should I have one? or do I need to create one?

I'm getting the same error. Are you using an NTFS HDD? Seems to be due to this as the commands for setting permissions are different from linux file systems. Yet to find a fix however so hopefully somebody here can slide a work around in ;)

I am getting the same error as well

just format your harddrive in linux friendly format - e.g. ext3, ext4. You can run it on NTFS, but it's a little bit tricky so different filesystem is the easiest, and the best solution

msykes41 month ago

Sorry if I am stupid, but did I miss something between 6 and 7? I can't get webmin running. I seem to be able to ssh into the pi with putty, but as this is not on the list of software, I assume this is wrong. Please tell me exactly how to get webmin open. Thanks.

If you installed the proper disc image from the last step (the ghoulman reference), your Pi should boot to the TurnKey Linux Configuration Console, which gives you all the addresses you see him accessing here. If this image isn't working for you, you can also install a vanilla copy of Raspian on your Pi and then follow these steps

to get Turnkey working.

Once you do have Turnkey working on the Pi, he omits the point that you should be typing these codes (i.e. "") in the URL field of your web browser, from another computer. Then you will be able to access the same screens that he is above. Gook luck!

GG924 days ago

Hi, to begin I find your work really impressive ans useful, I learned a lot, thanks

I have some questions, I plan on buying a Raspberry Pi 2 B will this work on it the way you’ve done it or will it be different ? Could I use only Raspbian OS and patch Turnkey to do the same?

My other question could i use Mycloud, Transmission, and Samba at the SAME time, will the server be so powerful to do it ??

I’m a beginner, so forgive me if some questions are for noob...

AndyRReyna5 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

I tried and it still did not work. If I am understanding right all I need to do to mount is add the lines in /etc/fstab. This did not work for me. Is there something else I need to do to mount the drive?

Thanks! I will try this next weekend.

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.

desterre1 month ago

Will this work on a Rapi 2?

duke5031 month 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...

malsony duke5031 month ago

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

malsony duke5031 month ago

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

Janrabbit1 month 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.

ChristoO11 month 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






marshieee1 month 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:

Arsaces1 month 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?

ChristoO11 month ago

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

DhruvV1 month 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?
1-40 of 361Next »