Raspberry Pi Owncloud (dropbox Clone)

1,260,472

745

115

About: Making Stuff since the 80's

What I'm going to show you is how to build a your own personal dropbox like service using a raspberry pi and some software called OwnCloud. ownCloud gives you freedom and control over your own data. It's a personal cloud which runs on your own server.

If you don't want to go through the steps for downloading and setup up the software you can download the image I have setup from here. While I have done everything I can to check this is working it should be understood that you use at your own risk. If you do download the image you can skip to step 5. 




Step 1: What You Need

A Raspberry Pi
An Usb External Harddisk or a USB Drive
An Enclosure for the Raspberry Pi and Hard Disk
Wireless network card (optional)




Step 2: Setting Up the Network Download the Software

So first off we need to give the Pi a fix IP address we do this by editting the network interfaces file

$ sudo nano /etc/network/interfaces

Once open we need to make the file look like this (your IP address might be different)

auto eth0
iface eth0 inet static
       address 192.168.1.118
       gateway 192.168.1.1
       netmask 255.255.255.0
       network 192.168.1.0
       broadcast 192.168.1.255

The file then needs to be saved by pressing ctrl o and ctrl  x to exit

once exited the networking need to be restarted

$ sudo /etc/init.d/networking restart

After that is done we need to update the Pi and download the software. This will take a little while to complete

$ sudo apt-get update

We are going to install Apache with SSL, PHP5, PHP APC which will load pages faster

$ sudo apt-get install apache2 php5 php5-json php5-gd php5-sqlite curl libcurl3 libcurl4-openssl-dev php5-curl php5-gd php5-cgi php-pear php5-dev build-essential libpcre3-dev php5 libapache2-mod-php5 php-apc gparted

Step 3: Configuor Php & Apache

Now we have download the software we need to configor it.

First off we need to install PHP apc

$ sudo pecl install apc
 
After that is done we need to create the apc.ini

$ sudo nano /etc/php5/cgi/conf.d/apc.ini

In to that file we need to add the following

extension=apc.so
apc.enabled=1
apc.shm_size=30

Once added the file needs saving

Next up we have to change the PHP.ini to change the max upload file so we can add large file and add the APC externsion to PHP

$ sudo nano /etc/php5/apache2/php.ini

In this file we need to find upload_max_filesize and then change the value to 1024M which will allow files of upto 1GB to be uploaded

The we need to find post_max_size and then chaged the value to 1200m which will allow files to upto 1 gb to be uploaded

We need to find externsion= section and add in the extension=apc.so

After we have done that save and exit

next up we need to config apache and enable SSL

$ sudo nano /etc/apache2/sites-enabled/000-default

inside the file we need to change Allow over ride to All from none 

Next up we need to setup SSL

$ sudo a2enmod rewrite
$ sudo a2enmod headers


After the follow command you will be asked to provide information

sudo openssl genrsa -des3 -out server.key 1024; sudo openssl rsa -in server.key -out server.key.insecure;sudo openssl req -new -key server.key -out server.csr;sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt;sudo cp server.crt /etc/ssl/certs;sudo cp server.key /etc/ssl/private;sudo a2enmod ssl;sudo a2ensite default-ssl

Once all that is done the apache need restarting

$ sudo service apache2 restart

Step 4: Download and Install Own Cloud

Now we have Apache and PHP setup we need to download own cloud

$ wget http://mirrors.owncloud.org/releases/owncloud-4.5.1.tar.bz2

once download it needs unziping

$ sudo tar -xjf owncloud-4.5.1.tar.bz2

And then copying in to the web root

$ sudo cp -r owncloud /var/www

After it's been copied we need to give the webserver permission to access the owncloud directory

$ sudo chown -R www-data:www-data /var/www/owncloud/

We also need to edit the .htaccess file to change the max upload file these values need to changed to the same values as you set in you php.ini

$ sudo nano /var/www/owncloud/.htaccess

Step 5: Setup Own Cloud

The easy way to setup the external drive is to use gparted on the Pi

$ startx

and the from inside the  GUI open a ternmail and type

$ sudo gprarted

from here you can partion and format the drive

Once done give the web-server permission 

$ sudo chown -R www-data:www-data /media/owncloud

All that needs to be done now is to setup owncloud

in a web browser type in https://IPADDRESS/owncloud

Choose a user name and password by typing then in to the user name and password box

click advanced and changed the data location to the place of your external drive in my case it's /media/owncloud

The click finish and you are done.

You should now be able to upload files. To play video files you'll need to enable the video player app.

To setup external access to your device I would suggest using DyDns or Noip.

Step 6: Placing It in the Encloser

Now the software is setup the Pi just needs placing in to the box. I would drill some hole in the box to allow a little air flow.

And that's it done.

Share

    Recommendations

    • Plastics Contest

      Plastics Contest
    • Make it Glow Contest 2018

      Make it Glow Contest 2018
    • Optics Contest

      Optics Contest

    115 Discussions

    0
    None
    FlyingHazard

    1 year ago

    Hey everyone! Not trying to hijack this post, just trying to be informative. It's been stated before that this Instructable is outdated. I recently posted one that is current with the latest version of OwnCloud-9.1.3, and I will update it as new versions come out. If you want to check it out, it's here!

    https://www.instructables.com/id/OwnCloud-9-on-Raspberry-Pi-DIY-Dropbox/

    0
    None
    T0BY

    1 year ago

    Thanks for this!

    0
    None
    WaldenB

    2 years ago

    An update (I expect); where it says to "change Allow over ride to All from none" in:

    $ sudo nano /etc/apache2/sites-enabled/000-default

    You might need to instead change it in:

    $ sudo nano /etc/apache2/conf-available/serve-cgi-bin.conf

    0
    None
    johnw354

    2 years ago

    I will update this post with a much easier and clear instructional since it is outdated.

    This will help you install owncloud 8.x on an existing Raspbian Jessie install.

    You will need a 64gb SD card. class 10 minimum write speed of 20 recommended.

    Use this instructional video... However instead of typing version 6 in the Download use version8.


    use this

    0
    None
    Red_Ranger_

    2 years ago

    How do you "partion and format the drive"? I can do everything else I just can't figure out this part!!!

    0
    None
    19b89

    2 years ago

    i could not get the php apc install

    every time i try its came with error "makefile:186: recipe for taget 'apc)cache.lo' faild "

    anyone could help me to fix this error please

    0
    None
    DavisP2

    2 years ago

    Nice little instructable! I noticed a little typo, that might be vital if someone is just copy and pasting. In step 5 it says to use gparted and then the command says
    $ sudo gprarted
    There is an extra 'r' in there.

    0
    None
    mvanbooven

    2 years ago

    would this instructable work with a raspberry pi zero

    1 reply
    0
    None
    mncmvanbooven

    Reply 2 years ago

    Pi Zero have no network interface. As far as I know; it is not yet tested with external network. but if you do all this, it should work.

    0
    None
    michael_nonan

    2 years ago

    can you stream video over the network?

    0
    None
    fbaeta

    2 years ago

    My major issues were about permissions and extras.

    This link did not solved my problems all alone since I had to edit some config files.

    The good thing was that it saved me a lot of time not doing things manually.

    Cheers

    0
    None
    fbaeta

    2 years ago

    Thank you for this tip.

    I was having problems since upgraded to Jessie.

    This link solved my issues!

    0
    None
    RichGags

    3 years ago on Introduction

    This is great! Thanks so much. It works perfectly, except, when I install the desktop client, OwnCloud wants to connect to https. If I try my site with https, it fails. With regular http, it works fine. How do I enable https on my RPi?

    1 reply
    0
    None
    scienceguy42RichGags

    Reply 2 years ago

    you need to set up a self signed certificate, turn on ssl in one of the config files, try look at the below link

    https://doc.owncloud.org/server/6.0/admin_manual/installation/installation_source.html#web-server-configuration

    0
    None
    scienceguy42QaadirK

    Reply 2 years ago

    set up port forwarding in your router and get external ip by going to ipchicken.com

    then type in http(s)://[external ip]/owncloud to access

    0
    None
    DbC1

    3 years ago on Step 6

    hi i can access my owncloud login page fine from my local network,using my noip address. but when i try to go to my logon page in a browser from a remote computer. then i just get a white screen. have got any ideas on this please?

    1 reply