Home > Tutorials > Eigenen OwnCloud Server einrichten

Eigenen OwnCloud Server einrichten

OwnCloud ist vergleichbar mit Online Speicher-Diensten wie Dropbox oder SkyDrive, es ermöglicht das ortsunabhängige Speichern von Daten und Informationen  in einer “eigenen Cloud”. Wer seine Daten nicht in die Hände dritter geben möchten kann mit dem Raspberry Pi anhand von OwnCloud seinen eigenen Online-Speicher-dienst mit vielen weiteren interessanten Funktionen erstellen. Eine Demo von OwnCloud gibt es auf der Projektseite von OwnCloud.

[UPDATE 12.07.2015]

Da viele User Probleme mit lighttpd haben gibt es nun ein neues OwnCloud Einrichtungs-Tutorial welches den offiziell unterstützten Apache Webserver verwendet. Linux Anfänger sollten das neue Tutorial definitiv bevorzugen.

Was ist OwnCloud?

OwnCloud ist vergleichbar mit Online Speicher-Diensten wie Dropbox oder SkyDrive, es ermöglicht das ortsunabhängige Speichern von Daten und Informationen  in einer “eigenen Cloud”. Der Unterschied bei OwnCloud ist das wir uns einen eigenen “Cloud Dienst” erstellen und somit die volle Kontrolle über unsere Daten behalten. Neben dem klassischen Online Speicher bietet OwnCloud noch einige weitere interessante Funktionen:

OwnCloud-Logo
  • Einbindung von externen Diensten zum Beispiel FTP, Dropbox, Amazon S3, WebDAV uvm.
  • Teilen von Dateien und Ordnern mit anderen
  • Online Kalender (über CalDAV)
  • Online Aufgabenplaner
  • Online Adressbuch (über CardDAV)
  • Musikwiedergabe aus dem Speicher
  • Fotogalerie aus dem Speicher
  • Tools für das Betrachten von PDF und Office-Dateien
  • Einen Editor für OpenDocument Dokumente
  • Favoriten / Lesezeichen Verwaltung
  • Benutzer-, Gruppen- und Rechte Verwaltung

Vorwort

Es gibt für OwnCloud bereits fertige “Ready to Use” Versionen für verschiedene Linux Distributionen, diese setzen auf Apache und MySQL als Datenbank. Ich habe in diesem Tutorial bewusst auf die Verwendung der Ready To Use Versionen verzichtet um euch zu zeigen wie eine manuelle Installation mit Lighttpd und SQLite funktioniert, da wir hiermit auf dem RasPi meines Erachtens besser fahren. Wer in der Pi und Linux Welt komplett neu ist sollte in Erwägung ziehen die Debian Version von hier zu installieren, oder die Herausforderung annehmen und lernen wie man selbstständig zum Ziel kommt.

Voraussetzungen

Folgende Dinge Benötigen wir um OwnCloud 7 auf dem Raspberry Pi zu installieren

  • RasPi mit Raspbian Wheezy – aktualisiert und eingerichtet. Ihr könnt hierzu gerne meine Tutorials Teil1, Teil2 und Teil3 verwenden
  • Über “raspi-config” sollte ein Memory Split von 16MB und das booten in die Konsole konfiguriert sein
  • Optional eine externe USB-Festplatte zum Speichern der Daten (die Daten können auch auf der SD-Karte liegen, wird aber nicht empfohlen)
  • Optional könnt ihr am Ende eine Portweiterleitung einrichten um OwnCloud aus dem Internet verfügbar zu machen

RasPi vorbereiten

Vor der Installation von OwnCloud müssen wir notwendige Software auf dem RasPi installieren, bei dieser Gelegenheit sollten wir auch gleich vorhandene Pakete und die Firmware unseres Mini-Computers aktualisieren.

Da wir aus Sicherheitsgründen den Webserver nicht unter dem Root oder Pi Benutzer starten möchten erstellen wir einen neuen Benutzer und eine Gruppe mit dem Namen “www-data”

SSL Webserver Zertifikat erstellen

Wer OwnCloud für Testzwecke installiert kann auf ein digitales Zertifikat verzichten, sobald ihr persönliche Daten übertragt empfehle ich grundsätzlich SSL zu verwenden. SSL bzw. TLS ermöglicht es uns den über das Netz laufenden Datenverkehr zu verschlüssel sodass Dritte nicht mitlesen können. SSL basiert auf einem digitalen Zertifikat das zu Verschlüsselung des Datenverkehrs auf dem Webserver benutzt wird. Viele werden hier nur “Bahnhof” verstehen da Themen rund um digitale Zertifikate recht komplex sind, ich hoffe euch das wichtigste trotzdem gut verständlich vermitteln zu können. Um ein Zertifikat mit OpenSSL erstellen zu können müssen wir uns erst einen privaten Schlüssel generieren. Der private Schlüssel ist der sensible Teil eines digitalen Zertifikats und sollte nicht in fremde Hände geraten (server.key). Dieser Schlüssel wird zum entschlüsseln der Daten verwendet, es kann nur derjenige die übertragenen Daten entschlüsseln der den privaten Schlüssel kennt, in unserem Fall ist das natürlich der Webserver für OwnCloud. Merkt euch das Passwort das ihr vergeben müsst um den privaten Schlüssel zu schützen.

Dann erstellen wir den öffentlichen Schlüssel des Zertifikats, ihr werdet aufgefordert einige Informationen einzugeben. Mit dem öffentlichen Schlüssel werden die Daten vom Clients verschlüsselt und an den Webserver gesendet. Durch den privaten Teil des Schlüsselpaars ist sichergestellt das nur der Webserver selbst die Daten wieder entschlüsseln kann. Das ganze basiert auf einem Asymetrischen Verschlüsselungsverfahren und kann hier nachgelesen werden.

Am wichtigsten ist die Option “Common Name”, gebt hier den Hostnamen, oder falls ihr DynDns verwendet den DynDNS Namen eures RasPi ein. Der Hostname ist, falls ihr diesen nicht geändert habt, “raspberrypi”.

openssl-csr

Jetzt entfernen wir noch die Passphrasse um zu verhindern das uns der Webserver bei jedem Start nach dieser fragt.

Als letztes generieren wir aus dem Schlüsselpaar eine digitales SSL Zertifikat das es uns ermöglicht den Datenverkehr zwischen Client und Webserver zu verschlüsseln.

Die Datei “server.crt” ist nun unser SSL-Zertifikat das wir später auf dem Webserver einspielen müssen.

openssl-files

Software installieren

Jetzt installieren wir die abhängige Software. Installiert wird der lighttpd Webserver mit allen für OwnCloud notwendigen Modulen und SQLite als Datenbank für die OwnCloud Anwendung. Wir starten mit der Installation des Webservers

Der Webserver lauscht nach der Installation auf Port 80 und wir können die Test-Seite von lighttpd in unserem Browser aufrufen “http://192.168.178.27/index.lighttpd.html”, ersetzt die IP-Adresse mit der eures RasPi (Detailierte Anleitung siehe hier). Habt ihr während der Installation einen Fehler erhalten das Port 80 bereits belegt ist müsst ihr in der “/etc/lighttpd/lighttpd.conf” den Port ändern (server.port) und diesen mit “:<Port>” an eure URL anhängen, also zb. http://192.168.178.27:8080/index.lighttpd.html für Port 8080. Um eine Sichere Kommunikation zu ermöglichen richten wir nun noch die SSL Verschlüsselung auf unserem Webserver ein. Zuerst erstellen wir aus dem Schlüssel und dem vorher generierten Zertifikat eine Datei die der Webserver lesen kann und legen diese dann im Konfigurationsverzeichnis ab.

Nachdem die Datei mit dem Zertifikat und den Schlüssel nun mit den korrekten Rechten und Eigentümer unter “/etc/lighttpd/ssl/server.pem” liegt passen wir noch die Webserver-Konfiguration an um SSL / HTTPS zu aktivieren.

Kopiert folgende Zeilen ans Ende der Datei und passt “server.name” an euren Hostnamen oder DynDNS Namen an. Falls Ihr Port 443 durch eine andere Anwendung belegt habt ändert den Wert hier entsprechend ab, zb. “:433” in “:8081”.

Wir installieren noch PHP und die notwendigen Module und aktivieren diese danach am Webserver

Als nächstes installieren wir die Datenbank SQLite

OwnCloud Installieren

Nun können wir die OwnCloud 7 Sourcen von der Webseite laden und entpacken diese in unser Home.

Nach dem Entpacken des Archivs nach /home/pi/owncloud/ verschieben wir die Dateien in das Document Root unseres Webservers und löschen noch die Standardseite von lighttpd

Wir müssen noch zwei wichtige Sicherheitseinstellungen an unserem Webserver vornehmen, wir verbieten den direkten Zugriff auf das Datenverzeichnis und deaktivieren das Directory Listing.

Dann ändern wir das Document Root für HTTP von “/var/www” in “/var/www/owncloud” sodass wir beim Aufruf via Browser nicht immer das Unterverzeichnis angeben müssen und evtl weitere Seiten auf dem Webserver hosten können.

OwnCloud Einrichten

Wir haben alle notwendigen vorarbeiten abgeschlossen und können nun die OwnCloud Konfiguration über unseren Browser aufrufen, am Besten tun wir das direkt via HTTPs um unsere SSL Verschlüsselung zu testen. Wir werden einen Fehler erhalten da es sich beim dem eingerichteten Zertifikat um ein selbst erstelltes und kein offizielles handelt, ignoriert daher die SSL Fehlermeldungen im Browser.

  • oder
  • https://raspberrypi/index.php

Wir landen auf der Konfigurationsseite von OwnCloud und erstellen einen neuen Benutzer, die anderen Einstellungen lassen wir erst mal unverändert. Die Einrichtung dauert einige Sekunden, wartet diese ab.

owncloud-installation

Achtung! Lighttpd bietet keinen Zugriffsschutz via htaccess, daher sind aktuell die persönlichen Daten unter “/var/www/owncloud/data” lesbar, um das zu verhindern und gleichzeitig unsere wichtigen Daten auf einen, im Vergleich zur SD-Karte, sicheren Speicher zu legen erledigen wir noch folgendes. Wir richten uns eine externe USB-Festplatte oder Stick am RasPi ein, eine genaue Anleitung gibt es in meinem Tutorial – RasPi als Fileserver einrichten (Step1), wichtig ist das ihr bei einem NTFS Datei System das automatische Mounten via in der fstab mit “permissions,defaults,auto” durchführt anstelle mit “defaults,auto,umask=000,users,rw”, sonst können wir die später die Rechte und den Eigentümer nicht ändern. Danach editieren wir die OwnCloud Config.

Dort ändern wir den Pfad zum Data Directory ‘datadirectory’ => ‘/var/www/owncloud/data’ in einen Pfad der auf unseren USB Drive zeigt.

Nun erstellen wir noch das neue Datenverzeichnis auf unserem Speicher, passen die Rechte an und verschieben dann das vorhandene Datenverzeichnis von der SD-Karte auf das USB-Laufwerk:

Wichtig ist das wir aus Sicherheitsgründen noch den Eigentümer der Dateien und die Rechte für die Verzeichnisse und Dateien festlegen (swohl für das Document Root unter “/var/www/” und für das verschobene Data Directory unter “/media/usbstick/owncloud-data/data”.

Danach müssen wir natürlich den Dienst neu starten um die Änderungen zu aktivieren

Das war die Grundkonfiguration von OwnCloud, ihr könnt nun via Browser, App oder Desktop Tool auf eure eigene Cloud zugreifen. Falls ihr eure Daten auch über das Internet erreichen wollt könnt ihr nun eine Portweiterleitung einrichten. Allerdings empfehle ich vorher die weitere Konfiguration abzuschließen.

OwnCloud Anpassen

Unsere eigene Cloud ist jetzt grundsätzlich funktionsfähig, wir sollten aber noch einige Anpassungen vornehmen um diese sicher und voll funktional zu machen.

SSL erzwingen

Ihr solltet für eure “Wolke” die Verwendung von HTTPS/SSL erzwingen, das passiert in den Einstellungen im Webinterface

owncloud-https

Passwort ändern

Falls ihr das noch nicht erledigt habt, ändert unbedingt das Passwort eures Benutzers “pi” über das Kommando “passwd”Passwort ändern

 passwd

Upload Größe anpassen

Um Uploads größer als 2MB zu erlauben müssen wir die php.ini editieren

Wir editieren die Optionen “upload_max_filesize” und “post_max_size” auf jeweils 20MB, ihr könnt auch einen höheren Wert nehmen. Da die Datei recht lange ist benutzt am Besten die Suche in Nano (STRG+W).

Erweiterungen

Nachträglich könnt ihr eure Wolke mit weiteren Funktionen und Apps ausstatten um die online Previews nutzen zu können und Office Dokumente bearbeiten zu können müsst ihr zum Beispiel noch folgende Software installieren

  • PHP module imagick (sudo apt-get install php5-imagick)
  • avconv or ffmpeg (sudo apt-get install ffmpeg)
  • OpenOffice or libreOffice (sudo apt-get install openoffice.org)

Weitere Apps gibt es auf der OwnCloud Webseite, cool finde ich den Music Player und die Streaming App.

166469-1

Smartphone und Desktop Client Apps

Es gibt verschiedene Möglichkeiten um auf die eigene Cloud zuzugreifen, das Smartphone via iOS oder Android App, den Desktop Rechner via Desktop Client oder das Bekannte Webinterface von einem beliebigen Browser.

Kalender und Adressbuch synchronisieren

Ihr könnt eure Geräte über das integrierte CalDAV oder CardDAV mit OwnCloud zu synchronisieren. Anleitungen hierzu gibts im Dokumentationsbereich.

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Keine Votes bis jetzt)
Loading...

Über raspberry.tips

27 Kommentare

  1. hi,
    versuch mich grag an deinem cloud server. hört sich gut an!
    bekomme aber beim versuch php zu installieren immer eine fehlermeldung:
    -bash: syntaxfehler beim unerwarteten wort ´<"
    ich find aber nix

    gibts eine möglichkeit deinen text ins putty fenster zu kopieren?
    danke

  2. Hallo,
    dort ist ein Fehler drin. alles im Zusammenhang mit o.ä. muss weg.

    Einfügen geht im putty mit rechte-rmaus-taste.
    gruss Steffen

  3. Hallo,

    hab alles ohne Fehler hin bekommen, aber wenn ich jetzt versuche die IP/index.php zu öffnen kommt Seiten LAdefehler.

    habs mit https:// ohne https:// mit index.php und ohne index.php versucht

    Was kann das sein??

  4. Wichtig ist die Zeile in Abschnitt 4.2, die leider nicht korrekt dargestellt ist. Damit wird die PHP-Installation beim Webserver aktiviert.

    sudo apt-get install php5-common php5-cgi php5-sqlite php5-gd php5-curl php5-json php5-intl php-pear php-apc php-xml-parser curl libcurl3 libcurl3-dev php5-mcrypt php5-xcache exif
    sudo lighty-enable-mod fastcgi-php
    sudo service lighttpd restart

  5. Hey, danke erstml fürs Tut.

    Nachdem ich die Cloud mehr oder weniger Installiert bekommen habe auf dem Pi, bekomme ich jetzt folgende Fehlermeldung im Webinterface:

    MySQL/MariaDB Benutzername und/oder Passwort sind nicht gültig Du musst entweder ein existierendes Benutzerkonto oder das Administratoren-Konto angeben.

    Ich hab echt kein blassen schimmer was ich mit der Aussage anfangen soll. Ich hab irgendwo im laufe der Recherche dazu was gelesen von PHP-Rechte verteilen oder so. Muss aber ehrlich gesagt gestehen, dass ich Null ahnung davon habe und gerade komplett am Anfang stehe was die Einrichtung einer Cloud angeht bzw SQL oder PHP (Und Linux nur sehr begrenzt Kentnisse habe)

    Wäre cool wenn mir geholfen werden kann.

    Gruß,
    Kai

  6. Der Befehl “cat server.key server.crt > server.pem” bringt eine Fehlermeldung “-bash: server.pem: Keine Berechtigung”, alle weiteren Befehle werden folglich nicht ausgeführt.

  7. Moin,

    bekomme bei dem Punkt “Software installieren”, bei der SSL Verschlüsselung auf dem Webserver, nach der Eingabe von “cat server.key server.crt > server.pem” die Fehlermeldung “-bash: server.pem: Permission denied”, bzw. mit sudo bash “No such file or directory”

    Gibt es hierfür eine Erklärung bzw. Lösung?

    • Hallo Dennis,

      Ja, die Erklärung ist sogar recht einfach, ich habe dort einen Tippfehler. Anstelle des vorher Eingetragenen “cd /” ist es “cd ~”, da es im Verzeichnis / keine Datei gibt kommt der Permission Denied Fehler.

      Die Anleitung habe ich angepasst, sorry!

  8. Servus,

    ich arbeite gerade deine Anleitung durch, komme bis zum umbiegen der Startseite..

    Dort erhalte ich folgende Meldung
    /# server.document-root = “/var/www/owncloud”
    -bash: server.document-root: command not found

  9. Hi,

    habe es bis zur Installation der PHP-Teile geschafft. Dann bekomme ich folgende Fehlermeldung:

    Die folgenden Pakete haben unerfüllte Abhängigkeiten:
    php-apc : Kollidiert mit: php5-xcache aber 2.0.0-4 soll installiert werden
    php5-xcache : Kollidiert mit: php-apc aber 3.1.13-1 soll installiert werden
    E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

    Weiß jemand wie ich den Fehler lösen kann?

  10. Hi,

    ich komme der Anleitung nach bis zum PHP-Teil, dann bekomme ich folgende Fehlermeldung:

    Die folgenden Pakete haben unerfüllte Abhängigkeiten:
    php-apc : Kollidiert mit: php5-xcache aber 2.0.0-4 soll installiert werden
    php5-xcache : Kollidiert mit: php-apc aber 3.1.13-1 soll installiert werden
    E: Probleme können nicht korrigiert werden, Sie haben zurückgehaltene defekte Pakete.

    Weiß jemand wie ich die Fehler beheben kann?

    Viele Grüße

  11. Hallo zusammen,

    vielen Dank für die super Anleitung. Soweit so gut….. ich komm auf die owncloud Oberfläche via SSL.

    Allerdings kommt beim ersten Aufruf nicht die owncloud Konfiguration sonder einer Fehlermeldung:

    Can’t write into config directory!
    This can usually be fixed by giving the webserver write access to the config directory.

    Eine Idee was ich falsch gemacht habe?

    Danke für die Hilfe

  12. Hallo,

    vielen Dank für die Anleitung. Ich habe es anhand dieser geschafft, dass die owncloud in meinem heimischen WLAN-Netzwerk gut funktioniert. Ich nutze die owncloud vor allem, um Kalender und Kontakte zu synchronisieren, zwischen zwei Macs und zwei iPhones. Router ist eine Fritzbox 7390.

    Allerdings funktioniert es nicht korrekt, die owncloud von außerhalb anzusprechen. Wenn ich über die DynDNS-Adresse gehe, lande ich auf dem owncloud-Startbildschirm, wo sich folgende Fehlermeldung findet:

    Du greifst von einer nicht vertrauenswürdigen Domain auf den Server zu.
    
    Bitte kontaktiere Deinen Administrator. Wenn du aktuell Administrator dieser Instanz bist, konfiguriere bitte die "trusted_domain" - Einstellung in config/config.php. Eine Beispielkonfiguration wird unter config/config.sample.php bereit gestellt. 
    Abhängig vonDeiner Konfiguration kannst Du auch als Administrator, zum Vertrauen dieser Domain, den unteren Button verwenden. 
    
    
    "raspberrypi" als vertrauenswürdige Domain hinzufügen
    
    

    Dabei befindet sich “raspberrypi” bereits in der config.php.

    Was könnte ich falsch gemacht haben? Ich stehe wirklich auf dem Schlauch.

     

    • Falls noch interesse besteht, trag deine dyndns adresse in dem trusted_domains array ein in der config datei.
      du wirst dennoch, wenn du dich einloggst.

  13. Hi Hier stecke ich bei “Danach editieren wir die OwnCloud Config”

    ###
    meine /etc/fstab hat folgendes drinnen:

    GNU nano 2.2.6 File: /etc/fstab

    proc /proc proc defaults 0 0

    /dev/mmcblk0p1 /boot vfat defaults 0 2
    /dev/mmcblk0p2 / ext4 defaults,noatime 0 1
    /dev/sda1 /mnt ntfs permissions defaults auto

    # a swapfile is not a swap partition, so no using swapon|off from here on, use $

    ###

    Unter http://192.168.178.25/owncloud/ sehe nur das hier:

    ownCloud

    Can’t write into config directory!
    This can usually be fixed by giving the webserver write access to the config directory.

    ownCloud – Web-Dienste unter Ihrer Kontrolle

    ###

    Wenn ich automatische Mounten via in der fstab mit “permissions,defaults,auto” durchführe dann erhalte ich folgende Meldung

    root@OWNfiles /media/usb-hdd $ sudo mount -a
    [mntent]: line 4 in /etc/fstab is bad

    ###

    Der Befehl sudo nano /var/www/owncloud/config/config.php

    bring mir ein leeres Feld:

    GNU nano 2.2.6 File: /var/www/owncloud/config/config.php

    ###

    Ich bitte um eine Hilfstellung?

    • Can’t write into config directory!
      This can usually be fixed by giving the webserver write access to the config directory.

      [code]sudo chown -R www-data:www-data /var/www/owncloud[/code]

      Sollte dieses Problem lösen.

  14. Danke für das Tutorial!
    Ich habe ein Problem beim Download von owncloud:

    “owncloud-7.0.2.tar.bz2: Keine Berechtigung

    Kann nicht nach »»owncloud-7.0.2.tar.bz2«« schreiben (Keine Berechtigung).”

    wie komme ich an das Archiev um es entpacken zu können?

    danke und Gruss!

  15. Servus! Hab auf meinem Raspberry Pi B (also noch die alte Version) nach dieser Anleitung hier installiert (eben mit neuem Owncloud), funktioniert soweit auch ganz gut, doch leider hab ich mit “Notes” bzw. “Ownnote” Probleme wegen dem Zertifikat… Das nach dieser Anleitung generierte Zertifikat lässt sich nicht mam Handy installieren, das wird auch hier: http://android.stackexchange.com/questions/61540/self-signed-certificate-install-claims-success-but-android-acts-as-if-cert-isn thematisiert.
    Leider schaffe ich es nicht, die dort gezeigte Lösung auf mein Problem hier anzuwenden. Dort wird ja nur ein private key verwendet, hier brauchts hingegen öffentlichen und privaten Key. Würde mich sehr freuen, wenn mir jemand helfen könnte!
    Gruß
    Georg

  16. Hallo,
    ich stecke fest. Wie kann ich die owncloud Seite aufrufen?
    Über https://[ipadresse] funktioniert das nicht.
    LG Moritz

  17. Hallo Zusammen,

    vielen Dank für die Anleitung.

    Aktuell hänge ich bei diesem Schritt

    sudo apt-get install php5-common php5-cgi php5-sqlite php5-gd php5-curl php5-json php5-intl php-pear php-apc php-xml-parser curl libcurl3 libcurl3-dev php5-mcrypt exif

    und erhalte folgende Fehlermeldung

    E: Paket php5-cgi php5-sqlite php5-gd php5-curl php5-json php5-intl kann nicht gefunden werden.
    E: Paket php-pear php-apc php-xml-parser curl libcurl3 libcurl3-dev kann nicht gefunden werden.

    Wie kann ich mir selber helfen?

    Vielen Dank im Voraus.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.