Zo beheer je met Raspberry Pi een personal cloud

Het gebruik van online opslagruimte via personal clouddiensten als Dropbox, Google Drive of Amazon Drive wordt steeds populairder. Hiermee kunnen bestanden in de cloud worden opgeslagen en altijd weer worden opgehaald. Naast de software heb je hiervoor alleen een computer of mobiel toestel met internettoegang nodig.

Over cloudhostingproviders klinken echter ook kritische geluiden. Het idee bestaat dat de klanten niet weten wie er behalve zijzelf ook toegang hebben tot de opgeslagen bestanden en of gewiste bestanden ook echt definitief verdwijnen van de servers. Dit is juist bij de opslag van gevoelige data zeer belangrijk. Wie de volledige controle over zijn of haar bestanden wil behouden, kan daarom zelf een personal cloud opzetten en beheren.

Een gerenommeerde, gratis en makkelijk te bedienen software hiervoor is ownCloud. Met de Raspberry Pi heb je daarnaast een goedkope minicomputer die heel goed kan worden gebruikt als servercomputer (host) voor ownCloud. In onze tutorial vertellen wij wat je naast de Raspberry Pi voor je cloud nodig hebt en hoe je een personal cloud inricht.


Waarom de combinatie Raspberry Pi en ownCloud?

ownCloud is een gratis filehostingapplicatie waarmee je een persoonlijke online opslagruimte kan creëren. Via een webinterface heb je vanaf elke browser toegang tot je bestanden. Je kan ook via desktop-clients en mobiele apps bestanden up- en downloaden (inclusief gegevenssynchronisatie). Naast de functie als dataserver biedt ownCloud nog diverse andere functies:

  • Kalender/planner
  • Adresboek
  • Muziek- en videoplayer
  • Weergeven van beeld-, PDF- en Microsoft Officebestanden
  • Editor voor OpenDocument-bestanden
  • Beheer van rechten voor gebruikers en groepen

Bovendien is het mogelijk om zowel de bestanden zelf als de verzending van bestanden te versleutelen. ownCloud vormt een interessant alternatief voor de grote clouddiensten en wordt vooral door veel gebruikers gewaardeerd omdat de software zijn gegevens opslaat op een privéserver of een gehuurde webspace – en dus niet op de harde schijven van grote bedrijven waar ze in principe continu toegankelijk zijn.

Voor filehosting heb je een computer met bijpassende serversoftware nodig die zorgt voor de overdracht van de bestanden naar het internet. Er zijn goede redenen om voor het gebruik van de Raspberry Pi als host voor ownCloud te kiezen. Enerzijds is de aanschafprijs voor de computer en alle andere componenten zeer schappelijk; er bestaat bijna geen zelfgehoste personal cloud met een betere prijs-kwaliteitverhouding dan ownCloud op een Raspberry Pi. Anderzijds is het stroomverbruik van de kleine singleboardcomputer zeer laag, wat vooral een voordeel is ten opzichte van een server die continu op stand-by moet staan.

Over het algemeen zijn er veel verschillende programma’s en manieren om een Raspberry Pi als ownCloud-host te gebruiken. De hieronder beschreven ownCloud-server is een Apache-webserver versie 2 (de Apache HTTP server is op het ogenblik de meestgebruikte webserver). Verder wordt naast de scripttaal PHP 5 ook SQLite als database gebruikt (het voordeel van SQLite ten opzichte van andere databases, zoals MySQL, is dat hij de resources van de Raspberry Pi minder belast).


Voorbereiding voor een ownCloud op de Raspberry Pi

Om op je Raspberry Pi een personal cloud in te richten, heb je naast de minicomputer nog enkele andere componenten nodig. Bovendien moet je eerst sommige instellingen veranderen voor je met de eigenlijke installatie en inrichting van ownCloud 9 kan beginnen.


personal cloud Raspberry Pi: Benodigde componenten

Benodigde componenten

  • Voor een Raspberry Pi die dienstdoet als server voor ownCloud adviseren wij een Raspberry Pi 2 model B of een krachtiger model, omdat anders het up- en downloaden relatief langzaam gaat (dit is echter ook afhankelijk van de datatransmissiesnelheid van de internetverbinding).
  • Een micro-SD-kaart met voldoende geheugen (aanbevolen is minstens 8 GB). Hoeveel opslagcapaciteit je nodig hebt, hangt uiteraard af van het type en aantal bestanden dat je wilt opslaan en of je ze alleen op de SD-kaart wilt opslaan of op een ander opslagmedium dat met de Raspberry Pi is verbonden. ownCloud kan ook extern opslaan op het internet (via FTP of WebDAV). Tevens kunnen andere clouddiensten, zoals Dropbox of Amazon S3, aan ownCloud worden toegevoegd. In deze tutorial wordt Raspbian Jessie als besturingssysteem gebruikt; dit moet dus op de micro-SD-kaart zijn geïnstalleerd. Wanneer je Raspberry Pi nog draait op Wheezy, de vorige versie van Raspbian, dien je voor deze tutorial Jessie van de officiële website te downloaden en op de minicomputer installeren.
  • Een internetverbinding (het beste via een netwerkkabel, anders via Wi-Fi).
  • Voeding via een micro-USB-kabel.

Eventueel kan een ander opslagmedium worden gebruikt (een externe harde schijf of een USB-stick) zodat je meer ruimte beschikbaar hebt voor je bestanden. Dat medium moet wel apart worden ingericht. Verder kan in veel gevallen ook een ventilator of een passieve koeler (weinig vermogen, dus minder geluid) de moeite waard zijn, vooral als je de kleine computer overklokt (wat in ieder geval bij de versies voor Raspberry Pi 3 B mogelijk was). Maar ook als je de Raspberry Pi onafgebroken als ownCloud-host wilt gebruiken, kan een koeling geen kwaad.

Net als bijna elke server kan ook de in deze tutorial beschreven server ‘headless’ worden gebruikt; dus zonder monitor, toetsenbord of muis. Omdat dit zowel de eenvoudigste als de energiezuinigste oplossing is, is het verstandig om veranderingen aan de server uit te voeren met SSH-remote access. Met SSH-clients, zoals WinSCP of PuTTY voor Windows resp. OpenSSH voor Unix-besturingssystemen, kunnen gebruikers de server via de handige remote access bedienen met een computer of smartphone. Je kan deze met elkaar verbinden door in SSH-client het IPv4-adres van de Raspberry Pi in te voeren en verbinding te maken.


ownCloud Raspberry Pi: statische adressen

Statische adressen instellen voor de Raspberry Pi

Voor de meeste gebruikers is een personal cloud alleen zinvol als de host 24 uur per dag online stand-by is. Alleen dan kan je (en evt. andere gebruikers) ook buiten je thuisnetwerk altijd bestanden ophalen of uploaden. Bij het inrichten van een thuisserver die constant online bereikbaar is, treedt normaal gesproken het volgende probleem op: je internetaansluiting heeft alleen een dynamisch IP-adres dat meestal na uiterlijk 24 uur verandert. Daarom kan je via zo’n internetverbinding een server niet onafgebroken onder hetzelfde adres bereikbaar houden.

Een statisch IP-adres zou een oplossing zijn voor het probleem. Dit is echter relatief duur en wordt ook niet aangeboden door elke internetprovider. Je kan in de plaats daarvan een dynamisch DNS (DDNS) gebruiken waarbij je een domeinnaam registreert en die aan je router of computer koppelt. Dit is mogelijk met een programma dat het IP-adres van je internetverbinding automatisch toewijst aan de domeinnaam en zo de server permanent onder dezelfde naam online beschikbaar maakt. DDNS wordt aangeboden door verschillende providers – sommige betaald, andere gratis. Wanneer je een Fritz!Box-router hebt, kan je die ook gebruiken voor DDNS: een dynamische DNS-functie is hierin al beschikbaar en hoeft alleen nog maar te worden geactiveerd. Op de website van de fabrikant van de router wordt uitgelegd hoe je DDNS instelt op de Fritz!Box.

Als je de Raspberry Pi niet met een statisch IP-adres of via een DDNS-service onder hetzelfde netwerkadres bereikbaar maakt, heb je praktisch alleen toegang tot de ownCloud vanaf je eigen netwerk. Maar zelfs dan kan de eigen fileserver nog nuttig zijn, bijvoorbeeld als je gebruik wilt maken van het automatisch synchroniseren van alle bestanden op de server.


De Raspberry Pi op de ownCloud-installatie voorbereiden

De Raspberry Pi op de ownCloud-installatie voorbereiden

Het is belangrijk om zeker te weten dat je Raspberry Pi optimaal is geconfigureerd voor het gebruik als ownCloud-host. Als je de standaard gebruikersnaam ‘Pi’ en het bijhorende wachtwoord ‘Raspberry’ nog niet hebt veranderd, moet dat eerst worden gedaan. Het is een veiligheidsrisico om de standaardinstellingen gewoon te blijven gebruiken, omdat iedereen die de server op internet vindt met het standaardwachtwoord toegang kan krijgen. Je kan de gebruikersnaam en het wachtwoord veranderen in de configuratie van de Raspberry Pi, die je met het volgende commando kan openen in de console:

sudo raspi-config

Net als voor elke installatie op een Raspberry Pi, moet je ook nu de computer en de geïnstalleerde pakketten updaten voor je begint met het installeren van ownCloud. Hiervoor gebruik je de volgende commando’s:

sudo apt-get update
sudo apt-get upgrade


OwnCloud inrichten

De personal cloud op de Raspberry Pi bestaat, naast ownCloud-software, uit diverse programma’s die nu stap voor stap worden geïnstalleerd. Tenzij anders aangegeven, voer je de commando’s in de console van de Raspberry Pi in.


personal cloud: Apache 2, PHP 5 en SQLite

Apache 2, PHP 5 en SQLite installeren

Om te beginnen wordt de Apache HTTP-server geïnstalleerd met het volgende commando:

sudo apt-get install apache2

Je kan controleren of de installatie van de webserver succesvol is verlopen door het IP-adres van de Raspberry Pi in de adresbalk van je browser in te voeren: wanneer vervolgens een lege webpagina met de zin “It works!” verschijnt, werkt alles naar behoren.

Om je ownCloud op internet bereikbaar te maken, moet je in je router de poortdoorgifte (“port forwarding“) activeren en routeraanvragen doorsturen van poort 433 naar de Raspberry Pi. Dit werkt bij elke router anders, maar je kan voor veel verschillende routermodellen tutorials online vinden. Met een succesvol uitgevoerde port forwarding is je Raspberry Pi nu op internet bereikbaar onder zijn IP-adres (resp. onder zijn domeinnaam, als je DDNS gebruikt). Zonder port forwarding heb je alleen toegang tot de webserver in je lokale netwerk.

Nu kan je PHP, SQLite en een paar andere noodzakelijke pakketten installeren:

sudo apt-get install php5 php5-gd sqlite php5-sqlite php5-curl

Nadat het installeren van alle programma’s is afgerond, start je de Apache-webserver opnieuw op:

sudo service apache2 restart


ownCloud Raspberry Pi installeren

ownCloud installeren

Nu zijn alle voorbereidingen getroffen om ownCloud op je Raspberry Pi te installeren. De software kan je vinden bij bijv. de downloadsectie van de officiële website. Download hier onder ‘Archive File’ de .zip-bestanden en kopieer ze op de Raspberry Pi. Je kan ook het programma installeren via de console. Hierbij moet je aangeven welke versie van ownCloud je wilt installeren. In deze tutorial wordt ownCloud 9.1.0 gebruikt.

wget https://download.owncloud.org/community/owncloud-9.1.0.zip

Een andere versie kan je eenvoudig installeren door de cijfers achter de bestandsnaam te veranderen ([…] community/owncloud-X.X.X.zip). De actuele en meest stabiele versie van het programma kan je vinden onder de bovengenoemde link naar de downloadsectie van ownCloud.

Welke optie je ook kiest, na het downloaden van de ownCloud-.zipbestanden moet je deze in de juiste map opslaan en uitpakken:

sudo mv owncloud-9.0.4.zip /var/www/html
cd /var/www/html
sudo unzip -q owncloud-9.0.4.zip

Maak vervolgens een eigen map aan voor ownCloud en ken hiervoor de rechten toe:

sudo mkdir /var/www/html/owncoud/data
sudo chown www-data:www-data /var/www/html/owncloud/data
sudo chmod 750 /var/www/html/owncloud/data

Nadat de map is ingesteld, moet de Raspberry Pi opnieuw worden opgestart:

sudo reboot


personal cloud: OwnCloud configureren

OwnCloud configureren

Als het programma is geïnstalleerd en de juiste mappenstructuur is gecreëerd, dan kan je aan de slag met je persoonlijke ownCloud-account. Dit doe je in de browser van je Raspberry Pi: voer het IP-adres van de minicomputer in de adresbalk in en voeg aan het einde van het adres het suffix “/owncloud“ toe (192.168.X.X/owncloud). Wanneer je de server gebruikt met een DDNS-adres, vervangt dit het IP-adres.

Het inlogscherm van ownCloud zou nu moeten verschijnen. Als er ook een ‘performance warning’ verschijnt over SQLite, kan je die simpelweg negeren. De Raspberry Pi-bestandsserver is nu helemaal klaar voor gebruik. Registreer nu een admin-account door een gebruikersnaam en wachtwoord aan te maken. Hiermee is de configuratie voltooid en is je personal ownCloud vanaf nu beschikbaar onder dit account. Onder het menu met de naam ‘File’ kan je bestanden up- en downloaden.


Tips voor het beheer van ownCloud op je Raspberry Pi

Wanneer je eerder al je Raspberry Pi een statisch adres hebt gegeven, kan je overal je persoonlijke ownCloud gebruiken met je IP- of DDNS-adres. Theoretisch kan elke andere gebruiker dit ook; alleen daarom al zijn veilige wachtwoorden absoluut raadzaam. Als je Raspberry-server extern toegankelijk is via internet, moet je bovendien in de gaten houden dat de server altijd goed beveiligd en up-to-date is.