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 325Next »
dzack7 days 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?

leer42 days 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
dzack3 days 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 dzack3 days ago

typo...I did mean to type

ostendna6 days 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-C5 days 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-C3 days 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.

Kk466 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 Kk463 days ago

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

UppityM Kk461 month ago

I dont understand that either

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

Dear Dr, I want to know too.

willr8 Kk461 month 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).

DerekH33 days 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?

AllenT37 days 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.

dzack8 days 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
MateoC10 days 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?

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

DarrenF41 month 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 DarrenF415 days ago

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

try running
sudo raspi-config

for details:-

ParthP416 days 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.

fgonz00921 days ago

Is it possible to still have the graphical desktop?

romario1721 days 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
IbraimA26 days ago

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

IbraimA26 days ago

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

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


I had the same issue... Don't give the port number. The updated owncloud seems not to require one

so instead of this:

try this:

nayaknayan made it!26 days ago

My first instructable completed successfully (although had several bumps on the way).. Maybe time someone updated this one!!

Thanks Doc!

andrewjeska28 days ago


For some reason, after burning the .img to an sd card, the pi will not boot. Has anyone else had this issue. Awesome tutorial by the way.

MarcioS11 month ago

Hello, I'm stuck at step 25, instaling transmission.

transmission is already the newest version. 0 upgraded, 0 newly installed, 0 to remove and 349 not upgraded.

As you can see transmission is installed, but it won't start anda i do not have settings.json or transmission folders

Hi, had the same problem, and tried this:

apt-get install transmission-cli transmission-common transmission-daemon

Seemed to do the trick :)

also, I had to change the rpc-whitelist": "*" in the settings.json file when you change the username and password....

i cant mount my usb stick, I get an error. Plus there are 3 options when mounting and none work. ive tried various formats and all fail


Have you tried reformatting said disk and using the exFAT filesystem? on another note, you have a Virus / Adware in your chrome or on your PC ad WebMin should not display any ads!

Yeah, it works now and i know about the ads been meaning to sort them out for days. Thanks.
RuiS1 month ago

Hi there, this is a great roadbook.

I'm stuck at owncloud config, after input all the data.

I keep getting the error "Can't create data directory (/xxxxxxx)

  • You can usually fix this by giving the webserver write access to the ownCloud directory '/usr/share/owncloud' (in a terminal, use the command 'chown -R www-data:www-data /path/to/your/owncloud/install/data'"

Can someone help me?
1-40 of 325Next »