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 334Next »

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

marshieee4 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.

bijumon.cp5 days ago

Great guide, I did it with the new Pi 2. The image here does not work with the new Pi, had to download the raspian image and manually install webmin and shellinabox. Had issues with the USB drive mounting due to power issues. Resolved it by using a powered USB HUB.

dzack1 month ago

I am having issue with Step 19. I enter cloud and get nothing but a google search.

Package php5-curl was installed successfully

DescriptionCURL module for php5
CURL is a library for getting files from FTP, GOPHER, HTTP server.
PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used
open source general-purpose scripting language that is especially suited
for web development and can be embedded into HTML.
php5-curlP-T5.4.36-0+deb7u3Debian PHP Maintainers <>armhfUnknown

Package owncloud was installed successfully

Descriptioncloud storage for files, music, contacts, calendars and many more
ownCloud gives you universal access to your files through a web interface
or WebDAV. It also provides a platform to easily view & sync your
contacts, calendars and bookmarks across all your devices and enables
basic editing right on the web.
owncloudK-O4.0.4debian2-3.3ownCloud for Debian maintainers <>allUnknown
dzack dzack1 month ago

typo...I did mean to type


should do the trick

oaltin7 days ago

Hello, and thank you for an amazing instru!

I have one question concerning security; are the default configuration secure enough to use this as a real web server (connecting the pi to the world throu port forwarding)?

See stackexchange:

cdesangles19 days ago


Can't install this image on the new Raspberry pi!

Is there a new version I can download?

try this:

malsony17 days ago

Hi, can I translate this into Chinese? Thanks!

dzack1 month ago
OK, I found the other Instructable that shows you how to install Rasbian then apply the patch. That worked great but I must have set the region up wrong for USA 8-UTC....
I put in a strong password with a wireless keyboard OK but when I tried to log into unit from my MAC via the terminal it does not accept my password. I am thinking that the keyboard layout might have been off. Will try a sub keyboard this weekend and redo it. What UTC should I be using ?

Did you find a solution to this. This is exactly what's happening to me. I can log on as root if I plug in a USB keyboard and monitor, but not using SSH or Webmin from a different computer.

If you found it, what is the correct localization for USA?

leer41 month ago


great tutorial however i am really struggling with the port forwarding.

i cant seem to set up any of the ports properly (below is a picture of my router virtual server port setup page)

any help with this would be greatly appreciated


Screen Shot 2015-02-25 at 16.08.45.png
ostendna1 month ago

problem with configuring network???

refusing to write to etc/network/interfaces


I had the same issue. My work around was "nano /etc/network/interfaces", comment out the dhcp line (# is a comment) and add my own static IP (replacing x with your own ip/gateway...

iface eth0 inet static
address 192.168.x.x
gateway 192.168.x.x

Ctrl+X, then Y to save. Sudo Reboot to apply settings.

Looks good thanks for the help.

How do I get it to stop going into the turnkey linux network setup?

It does not see that I have configured eth0 manually

Ian-C1 month ago


I am new to the world of the Pi having just brought a new Pi 2 and i was trying to follow this Instructable but have come across a problem with mounting the HDD or in my case USB memory stick. I am temporarily using the USB stick until my new 2TB HDD turns up.

Basically other than the Mounting issue i have not been able to use the recommended image for the OS as maybe it is not compatible with the new Pi 2 but every time i have tried the image the Pi won't boot, won't even take the monitor out of power save. I have a Noobs SD card where i installed Raspbian and manually add shell in a box and Webmin which i gather are already added in the recommended image.

The issue i'm having with mounting the USB stick is i follow the steps up to and including clicking the create button but then i just get "Failed to save mount : The device file '/dev/mmcblk06' does not exist" i have tried using NTFS and reformatting the stick to EXT4. i have set up a root password in case it was a permission thing and i login to webmin with a root password which has not changed the situation. i have also spent many hours internet trawling to find a solution but to no avail.

Is it the case that this instructable is not compatible with the Pi 2 or is there something I'm doing wrong?

DerekH3 Ian-C1 month ago

I was testing my setup on a USB stick as well (ran in fat32 permissions until I formatted for ntfs) and it showed up as /dev/sda where a lot of guides said it would be sda# (# meaning 1, 2, 3, etc). It find this out, I unplugged the USB "ls" the directory then plugged it back in to compare the "ls" of the directory. There is a way to look for sda* (or mmcblk* in your case) but I can't find the article at this time.

Kk467 months ago

Dear Dr,

please explaine where webmin should run on, is it the computer I use to acces the Pi or on the Pi itself? If on the Pi how do I start it up?


DerekH3 Kk461 month ago

Webmin is running on the Pi, but is accessed from any local PC with a browser.

UppityM Kk462 months ago

I dont understand that either

AdamW14 UppityM1 month ago

Hope you guys all found the answer but for anyone having the same question: webmin is a program running on the pi Kk462 months ago

Dear Dr, I want to know too.

willr8 Kk462 months ago

I think he is using a VNC to log in to the pi, you could do this without going through that, but the point of this is to learn how to execute commands/maintain a server with a moderately forgiving format (if you mess this one up, you won't lose your job).

DerekH31 month ago

Great guide, got everything working but then I transferred a file through Samba and it seemed to have corrupted the SD Card. Anyone have thoughts about that?

AllenT31 month ago

I am in the process of purchasing a Pi but would also like to try this on an old PC I have just to play around. What is the easiest way to get started, I tried some things with the .img file but had no luck. Any guidance would be appreciated. Thanks.

dzack1 month ago
I downloaded the image and installed it on a 16g card using win32 as the steps show but Raspberry Pi B+ will not boot up. I also tried same image on a Pi B. In-zipping file from site listed gives me 2 files, 1 labeled fat and the other containing the image as just "1". Is that correct? I have tried these steps several time and still no go.
Please inform me what I seem to be missing. I have tried several other Pi images this way and never had an issue.
Thank you
MateoC1 month ago

Do I need to be familiar in php in order for this to work?

I now Java, just beginning to learn HTML, CSS and JS. But I really have no time to learn PHP. Can this work without PHP?

carltonwb1 month ago

In an attempt to upgrade Webmin I receive the error listed below

Any thoughts. Thanks

Failed to upgrade from : HTTP/1.1 403 Forbidden

Solved. Needed to clean cache for some reason

DarrenF42 months ago

im struggling with one part. the size of the root partition. its full. the sd card has about 14gb unused but I can not find away to extend the partition. I would really appreciate your help.

AarifS DarrenF41 month ago

Hi. did you try expanding the root partition to fill the sd card?

try running
sudo raspi-config

for details:-

ParthP41 month ago

I trried to run raspliance core in pi but it is not running. can you tell me how to install turnkey in raspbian wheezy os.

fgonz0091 month ago

Is it possible to still have the graphical desktop?

romario171 month ago
Hi, amazing detail.

I got a problem.
I cant insert a root password for my linux turnkey as it does NOT detect my keyboard at this step.

how do i solve this?
thanks a bilion
IbraimA1 month ago

Is it possible to edit the list of mounted devices from the list... To delete the one created here for example?

IbraimA1 month ago

Is it possible to edit the list of mounted devices from the list... To delete the one created here for example?

jwstockham2 months ago

I'm on the penultimate step of setting up port forwarding for no ip. Each of the services work except for owncloud. I've forward incoming port 1 to port 80 to my pi and am using the url but it just says This webpage is not available. Anyone able to provide some help?

1-40 of 334Next »