36ownCloud

ownCloud ermöglicht es, Dateien, Adressen, Kalender, Musikstücke und andere Daten auf einem eigenen Server abzulegen und diese Daten über alle erdenklichen Client-Geräte hinweg zu synchronisieren. Unterstützt werden unter anderem Rechner unter Linux, Windows und OS X sowie Smartphones und Tablets unter Android und iOS. Damit bietet ownCloud auf den ersten Blick ähnliche Funktionen wie Dropbox, Ubuntu One und zahllose andere Cloud-Dienste.

Demgegenüber hat ownCloud einige wesentliche Vorteile:

ownCloud bietet sich damit als Komplettlösung zur Speicherung und Synchronisation nahezu aller gängigen Daten zwischen mehreren Computern und iOS- oder Android-Geräten an.

Das Cloud im Namen ownCloud ist allerdings trotz vieler Ähnlichkeiten zu populären Cloud-Diensten irreführend. ownCloud ist in der gegenwärtigen Form in keiner Weise dahingehend optimiert, auf mehreren Servern zu laufen, die Daten redundant zu speichern, Datenzugriffe gleichmäßig zu verteilen etc. Das alles sind aber Merkmale, die mit Cloud-Diensten assoziiert werden. ownCloud richtet sich also primär an Privatanwender oder kleine Firmen, die eine zentrale Datei-, Kontakt- und Terminverwaltung mit Synchronisationsfunktionen wünschen. Wer selbst einen Dienst wie Dropbox gründen möchte, wird mit ownCloud hingegen nicht glücklich werden.

Eine Stärke von ownCloud im Vergleich zu anderen Open-Source-Projekten mit ähnlicher Zielsetzung ist die breite Client-Unterstützung: Clients für Linux, Windows und OS X sind kostenlos verfügbar, daneben gibt es Apps für iOS und Android. Außerdem können viele ownCloud-Funktionen auch über deren Weboberfläche sowie über standardisierte Protokolle genutzt werden, unter anderem WebDAV, CalDAV, CardDAV und Ampache.

Meine Erfahrungen mit ownCloud sind durchwachsen. Keine Probleme hatte ich mit der Synchronisation von Dateien zwischen ownCloud und diversen Clients. Die für mich viel wichtigere Synchronisation von Terminen und Kontakten funktionierte aber zuletzt nur mit ausgewählten Clients zuverlässig – am besten erstaunlicherweise auf Apple-Geräten (iOS und OS X). Probleme hatte ich dagegen mit Thunderbird, mit Gnome-Programmen etc.

Einigermaßen katastrophal verlief auch das Update auf die ownCloud-Version 8. Mit dieser Version lagerte ownCloud die früher standardmäßig enthaltenen Kontakt- und Terminfunktionen in externe Apps aus. Nach dem Update waren alle Kontakte und Termine zunächst unzugänglich. Die nun erforderliche Installation der Apps Calendar und Contacts scheiterte mit unklaren Fehlermeldungen und gelang erst, nachdem ich auf dem Webserver einige ältere Verzeichnisse umbenannt hatte.

So wünschenswert eine freie Alternative zu den Clouds von Apple, Google und Microsoft wäre, so schwer fällt es, ownCloud hierfür uneingeschränkt zu empfehlen.

Für dieses Kapitel habe ich ownCloud in der Version 8.1 unter Ubuntu 14.04 als Server getestet. Aktuelle Informationen zu ownCloud lesen Sie am besten auf der Projektwebsite http://owncloud.org nach.

36.1Installation

ownCloud wird nur unter wenigen Distributionen als fertiges Paket mitgeliefert – und wenn, dann in der Regel in einer veralteten Version. Das ist aber nicht weiter schlimm: Von der Website http://owncloud.org/install führt ein Link auf eine Seite mit Installationsanleitungen für alle gängigen Distributionen. Sie müssen lediglich einige Kommandos von dieser Webseite kopieren und in einem Terminal ausführen, um ownCloud inklusive aller erforderlichen Zusatzpakete zu installieren. Der große Vorteil der Paketinstallation besteht darin, dass dabei eine Paketquelle eingerichtet wird, aus der Sie in Zukunft automatisch mit Updates versorgt werden. Unter Ubuntu sehen die erforderlichen Kommandos so aus:

user$ wget http://download.opensuse.org/repositories/isv:ownCloud:\ community/xUbuntu_15.04/Release.key user$ sudo apt-key add - < Release.key user$ sudo sh -c "echo 'deb http://download.opensuse.org/repositories\ /isv:/ownCloud:/community/xUbuntu_15.04/ /'\ >> /etc/apt/sources.list.d/owncloud.list" user$ sudo apt-get update user$ sudo apt-get install owncloud

Die Ubuntu-Version wird in das Verzeichnis /var/www/owncloud installiert. Die Apache-Konfigurationsdatei /etc/apache2/conf.d/owncloud.conf enthält für dieses Verzeichnis den Eintrag AllowOverride All.

ownCloud manuell installieren

Nur wenn die Paketinstallation aus irgendeinem Grund nicht möglich ist, sollten Sie eine manuelle Installation durchführen. Dazu müssen Sie zuerst alle Pakete installieren, auf die ownCloud zurückgreift. Die umfangreiche Liste ist hier dokumentiert:

https://doc.owncloud.org/server/8.0/admin_manual/installation/source_installation.html

Danach laden Sie ownCloud als TAR-Archiv von der Webseite http://owncloud.org/install herunter. Das Archiv packen Sie unter Debian und Ubuntu im Verzeichnis /var/www aus, bei anderen Distributionen in einem für Apache zugänglichen Verzeichnis. Anschließend machen Sie mit chown die Dateien für den Apache-Account les- und schreibbar, bei Debian und Ubuntu also für www-data:

root# cd /var/www root# tar xjf download-verz/owncloud-n.n.n.tar.bz2 root# chown -R www-data.www-data owncloud/

ownCloud greift auf die Apache-Module rewrite und headers zurück. Um diese zu aktivieren, führen Sie das folgende Kommando aus:

root# a2enmod rewrite headers

Sie müssen das ownCloud-Installationsverzeichnis in einer Apache-Konfigurationsdatei einrichten. Dabei können Sie sich am folgenden Muster orientieren:

# in einer Apache-Konfigurationsdatei ... Alias /owncloud "/var/www/owncloud/" <Directory "/var/www/owncloud"> Options +FollowSymLinks AllowOverride All <IfModule mod_dav.c> Dav off </IfModule> SetEnv HOME /var/www/owncloud SetEnv HTTP_HOME /var/www/owncloud </Directory> <Directory "/var/www/owncloud/data/"> # just in case if .htaccess gets disabled Require all denied </Directory>

ownCloud und HTTPS

Wenn Sie Apache für den HTTPS-Einsatz konfiguriert haben, sollten Sie das ownCloud-Verzeichnis nur über HTTPS verfügbar machen, also innerhalb einer VirtualHost-Gruppe für den Port 443. Das stellt eine verschlüsselte Übertragung Ihrer Daten sicher.

Leider sind manche Client-Programme nicht HTTPS-kompatibel. Wenn z.B. die Synchronisation von Adressen und Kontakten oder das Hören von Musik via HTTPS nicht funktioniert, ist ein HTTP/HTTPS-Parallelbetrieb unumgänglich.

Damit alle veränderten Einstellungen wirksam werden, auch die vorhin aktivierten Module rewrite und headers, müssen Sie Apache neu starten:

root# service apache2 restart

Erster Start

Die ownCloud-Installation können Sie nun in Ihrem Webbrowser unter der folgenden Adresse abschließen:

http://ihr-hostname/owncloud oder https://ihr-hostname/owncloud

Sie müssen jetzt ein Admin-Konto einrichten, also einen Namen und ein Passwort angeben. Zur Speicherung von Dateien verwendet ownCloud das Verzeichnis data relativ zum ownCloud-Installationsverzeichnis – in unserem Fall also /var/www/owncloud/data.

Einstellungen, Kontakte, Termine und diverse Metadaten speichert ownCloud standardmäßig in einer SQLite-Datenbank. Für kleinere Installationen ist das zweckmäßig, weil Sie sich nicht mit MySQL-Administrationsdetails herumschlagen müssen. Für größere Installationen bzw. für die Synchronisation umfangreicher Dateibäume empfiehlt die ownCloud-Dokumentation aber unbedingt einen Wechsel auf MySQL als Datenbank-Server. Dazu richten Sie zuerst eine leere MySQL-Datenbank ein und führen dann im ownCloud-Installationsverzeichnis das PHP-Script occ aus:

root# cd /var/www/owncloud root# php occ db:convert-type --all-aps mysql <mysqluser> localhost <dbname>

Weitere Details können Sie hier nachlesen:

https://doc.owncloud.org/server/8.1/admin_manual/configuration_database/db_conversion.html

ownCloud-Benutzerverwaltung

So wie Sie unter Linux nur in Ausnahmefällen als root arbeiten, werden Sie auch bei ownCloud das Admin-Konto nicht zur Speicherung gewöhnlicher Daten verwenden. Sie sollten deswegen nach dem ersten Login bei ownCloud im Einstellungspunkt Nutzer im Login-Menü rechts oben (siehe Abbildung 36.1) einen gewöhnlichen Benutzer einrichten. An dieser Stelle können Sie auch ownCloud-Konten für Familienmitglieder, Firmenmitarbeiter etc. anlegen.

ownCloud-Benutzerverwaltung

Abbildung 36.1ownCloud-Benutzerverwaltung

Im Dialog zur Benutzerverwaltung können Sie ein Standard-Quota festlegen, z.B. 5 GByte. Damit geben Sie den maximalen Speicherplatz vor, den ein Benutzer beanspruchen darf. Davon abweichend können Sie die maximale Speichermenge individuell für jeden Benutzer einstellen. Leider verrät ownCloud nicht, wie viel Speicherplatz jeder Benutzer tatsächlich beansprucht. Eine Liste aller Datenverzeichnisse mit dem Platzbedarf in MByte liefert das folgende Kommando:

root# du -m --max 1 /var/www/owncloud/data | sort -rn

ownCloud gibt Ihnen auch die Möglichkeit, die Benutzer in Gruppen zu organisieren. Es gibt aber nur wenige Funktionen, bei denen die Gruppenzugehörigkeit relevant ist.

Um einen Benutzer zu löschen, klicken Sie einfach auf den x-Button am rechten Ende der Zeile des Benutzers. Beachten Sie aber, dass die Dateien des Benutzers aus Sicherheitsgründen nicht gelöscht werden! Wenn Sie sicher sind, dass Sie die Dateien nicht mehr brauchen, müssen Sie das entsprechende Verzeichnis manuell löschen. Der Konfiguration dieses Kapitels folgend ist das /var/www/owncloud/data/benutzername.

Jeder Benutzer kann nach dem Login in der ownCloud-Weboberfläche seine persönlichen Einstellungen inklusive des Passworts ändern. Dazu wählen Sie im Login-Menü den Eintrag Persönlich. Hier können Sie auch die gewünschte Sprache einstellen. Empfehlenswert ist schließlich die Angabe einer E-Mail-Adresse, an die gegebenenfalls ein Login-Link versandt wird, falls Sie Ihr Passwort vergessen sollten. Diese Funktion setzt voraus, dass auf dem ownCloud-Server ein Mail-Server zur Verfügung steht.

Einstellungen

Der Eintrag Administrator im rechten Menü führt auf eine Seite mit diversen ownCloud-Grundeinstellungen. Hier können Sie z.B. die maximale Dateigröße verändern oder ganze ownCloud-Instanzen als Backup exportieren.

Im Hauptmenü links oben führt der Eintrag Apps in eine Liste von Zusatzprogrammen (Plugins), die in ownCloud zur Verfügung stehen. Diese können bei Bedarf aktiviert oder deaktiviert werden. Standardmäßig aktiviert sind lediglich zwei Viewer für PDF-Dateien und Bilder und ein simpler Texteditor. In früheren ownCloud-Versionen waren auch Funktionen zur Kontakt- und Terminverwaltung inkludiert. Diese müssen Sie nun explizit in Form der Apps Calendar und Contacts installieren. Das App-Menü sieht dann aus wie in Abbildung 36.2.

App-Verwaltung in ownCloud

Abbildung 36.2App-Verwaltung in ownCloud

Aus Sicherheitsgründen ist es empfehlenswert, alle Daten ausschließlich verschlüsselt zwischen Ihren Clients und ownCloud zu übertragen. Dazu müssen Sie ownCloud auf einer HTTPS-Webseite einrichten. Dazu müssen Sie die entsprechenden Apache-Konfigurationsdateien ändern. Auf der vorhin erwähnten Seite Administrator können Sie anschließend eine Option aktivieren, dass ownCloud ausschließlich via HTTPS verwendet werden darf.

Wünschen Sie darüber hinaus auch, dass alle Dateien innerhalb der ownCloud-Verzeichnisse verschlüsselt gespeichert werden, müssen Sie die Option Serverseitige Verschlüsselung aktivieren. ownCloud verschlüsselt von nun an alle Dateien, die hochgeladen oder verändert werden. Bereits vorhandene Dateien bleiben unverschlüsselt. Nicht verschlüsselt werden Dateinamen, Kontakte, Termine etc. Interna zur aktuellen Verschlüsselungsstrategie, die in der Geschichte von ownCloud schon mehrfach grundlegend verändert wurde, lesen Sie hier nach:

https://doc.owncloud.org/server/8.1/go.php?to=admin-encryption

Standardmäßig erstellt ownCloud Backups aller Dateien, die geändert oder gelöscht werden. Verantwortlich ist dafür die App Versions, die standardmäßig aktiviert ist. ownCloud-Anwender können also wie unter Dropbox bei Bedarf auch auf ältere Versionen von synchronisierten Dateien zurückgreifen. Der Zugriff auf die Backup-Versionen von Dateien erfolgt in der Weboberfläche von ownCloud bei der jeweiligen Datei mit dem Link Versionen. Beachten Sie auch, dass Backups ausschließlich für reguläre Dateien erstellt werden, nicht aber für Kontakte und Termine!

ownCloud speichert regelmäßig alte Versionen von geänderten Dateien, wobei alte Sicherheitskopien nach und nach gelöscht werden, sodass nie mehr als ca. 50 Prozent des freien Platzes für Backups verwendet werden.

Interna

Tabelle 36.1 fasst die Speicherorte von ownCloud-Daten relativ zum ownCloud-Datenverzeichnis zusammen. Wenn Sie der obigen Anleitung gefolgt sind, hat dieses Verzeichnis den Pfad /var/www/owncloud/data.

Pfad und Dateiname

Inhalt

owncloud.db

SQLite-Datenbank

loginname/files/*

Dateien

loginname/files/clientsync/*

Dateien der Desktop-Clients

loginname/files_versions/*

Backups alter Dateien (Versioning-App)

loginname/gallery/*

Vorschau-Bilder (Thumbnails)

Tabelle 36.1ownCloud-Speicherorte

In der SQLite-Datenbank werden unter anderem die Programmeinstellungen, die ownCloud-Benutzer und Gruppen, Sharing-Informationen, Kontakt- und Kalender-Daten sowie die Metadaten von Audio-Dateien und Fotos gespeichert. Wenn Sie einen Blick in die Datenbank werfen möchten, installieren Sie das Paket sqlite3 und führen dann sqlite3 owncloud.db aus. In der SQLite-Shell liefert das Kommando .tables eine Liste aller Tabellen. select * from tablename zeigt den Inhalt einer Tabelle an.

In den Defaulteinstellungen erlaubt PHP nur den Upload von relativ kleinen Dateien (z.B. 16 MByte). Damit Sie in ownCloud auch größere Dateien übertragen können, befinden sich in der Datei .htaccess die folgenden Anweisungen:

# in /var/www/owncloud/.htaccess php_value upload_max_filesize 512M php_value post_max_size 512M php_value memory_limit 512M

Damit ist ein Upload bis zu einer Größe von 512 MByte möglich. Gegebenenfalls müssen Sie diese Einstellungen verändern, wenn Sie noch größere Dateien übertragen wollen. Beachten Sie, dass die Angaben in .htaccess nur wirksam werden, wenn die Apache-Konfiguration für das Verzeichnis die Zeile AllowOverride All enthält. Sie können die PHP-Einstellungen natürlich auch systemweit verändern – unter Ubuntu in der Datei /etc/php5/apache2/php.ini.

Wenn Sie ownCloud aus einer Paketquelle beziehen, erfolgen Updates automatisch. Beim ersten Login nach einem Update werden eventuell erforderliche Umstellungsarbeiten automatisch erledigt.

Zur manuellen Durchführung eines ownCloud-Updates laden Sie das aktuelle TAR-Archiv herunter und extrahieren es im selben Apache-Verzeichnis wie die vorige Version. Vergessen Sie nicht, anschließend die Zugriffsrechte auf die Dateien wieder richtig einzustellen. Generell ist es natürlich eine gute Idee, vor jedem Update zuerst eine Kopie des gesamten ownCloud-Verzeichnisses zu erstellen – sicher ist sicher!

root# cp -a ownclod owncloud-backup root# cd /var/www root# tar xjf download-verz/owncloud-n.n.n.tar.bz2 root# chown -R www-data.www-data owncloud/