ownCloud

ownCloud 6 ist da

Zum Einsatz von ownCloud habe ich ja hier und hier schon etwas geschrieben – jetzt ist ownCloud in Version 6 erschienen und kommt natürlich auch gleich auf den Prüfstand.
Meine Erkenntnisse werde ich nach und nach hier zusammentragen.
Noch ein Satz vorweg: ich habe OC6 auf einem ganz normalen Webhosting Paket bei HostEurope installiert – manche meiner Beobachtungen könnten damit zusammenhängen und folglich bei anderen Providern/Servern nicht auftreten.

Installation

Man kann leider immer noch kein Tabellenpräfix vorgeben, die Installation erfolgt standardmäßig mit oc_. Vorsicht also, wenn man die neue Version in die alte Datenbank installieren will – das dürfte ziemlich in die Hose gehen, jedenfalls wenn man keine aktuelle Sicherung der Datenbank parat hat.

Ich habe direkt nach der Installation alle Tabellen manuell (in phpMyAdmin) umbenannt:

[code lang=“sql“ gutter=“0″ collapse=“true“ title=“SQL-Befehle…“]RENAME TABLE `meineDB`.`oc_activity` TO `meineDB`.`abcde_activity`;
RENAME TABLE `meineDB`.`oc_appconfig` TO `meineDB`.`abcde_appconfig`;
RENAME TABLE `meineDB`.`oc_clndr_calendars` TO `meineDB`.`abcde_clndr_calendars`;
RENAME TABLE `meineDB`.`oc_clndr_objects` TO `meineDB`.`abcde_clndr_objects`;
RENAME TABLE `meineDB`.`oc_clndr_repeat` TO `meineDB`.`abcde_clndr_repeat`;
RENAME TABLE `meineDB`.`oc_clndr_share_calendar` TO `meineDB`.`abcde_clndr_share_calendar`;
RENAME TABLE `meineDB`.`oc_clndr_share_event` TO `meineDB`.`abcde_clndr_share_event`;
RENAME TABLE `meineDB`.`oc_contacts_addressbooks` TO `meineDB`.`abcde_contacts_addressbooks`;
RENAME TABLE `meineDB`.`oc_contacts_cards` TO `meineDB`.`abcde_contacts_cards`;
RENAME TABLE `meineDB`.`oc_contacts_cards_properties` TO `meineDB`.`abcde_contacts_cards_properties`;
RENAME TABLE `meineDB`.`oc_documents_invite` TO `meineDB`.`abcde_documents_invite`;
RENAME TABLE `meineDB`.`oc_documents_member` TO `meineDB`.`abcde_documents_member`;
RENAME TABLE `meineDB`.`oc_documents_op` TO `meineDB`.`abcde_documents_op`;
RENAME TABLE `meineDB`.`oc_documents_revisions` TO `meineDB`.`abcde_documents_revisions`;
RENAME TABLE `meineDB`.`oc_documents_session` TO `meineDB`.`abcde_documents_session`;
RENAME TABLE `meineDB`.`oc_filecache` TO `meineDB`.`abcde_filecache`;
RENAME TABLE `meineDB`.`oc_files_trash` TO `meineDB`.`abcde_files_trash`;
RENAME TABLE `meineDB`.`oc_files_trashsize` TO `meineDB`.`abcde_files_trashsize`;
RENAME TABLE `meineDB`.`oc_files_versions` TO `meineDB`.`abcde_files_versions`;
RENAME TABLE `meineDB`.`oc_file_map` TO `meineDB`.`abcde_file_map`;
RENAME TABLE `meineDB`.`oc_gallery_sharing` TO `meineDB`.`abcde_gallery_sharing`;
RENAME TABLE `meineDB`.`oc_groups` TO `meineDB`.`abcde_groups`;
RENAME TABLE `meineDB`.`oc_group_admin` TO `meineDB`.`abcde_group_admin`;
RENAME TABLE `meineDB`.`oc_group_user` TO `meineDB`.`abcde_group_user`;
RENAME TABLE `meineDB`.`oc_jobs` TO `meineDB`.`abcde_jobs`;
RENAME TABLE `meineDB`.`oc_locks` TO `meineDB`.`abcde_locks`;
RENAME TABLE `meineDB`.`oc_lucene_status` TO `meineDB`.`abcde_lucene_status`;
RENAME TABLE `meineDB`.`oc_mimetypes` TO `meineDB`.`abcde_mimetypes`;
RENAME TABLE `meineDB`.`oc_mozilla_sync_collections` TO `meineDB`.`abcde_mozilla_sync_collections`;
RENAME TABLE `meineDB`.`oc_mozilla_sync_users` TO `meineDB`.`abcde_mozilla_sync_users`;
RENAME TABLE `meineDB`.`oc_mozilla_sync_wbo` TO `meineDB`.`abcde_mozilla_sync_wbo`;
RENAME TABLE `meineDB`.`oc_permissions` TO `meineDB`.`abcde_permissions`;
RENAME TABLE `meineDB`.`oc_pictures_images_cache` TO `meineDB`.`abcde_pictures_images_cache`;
RENAME TABLE `meineDB`.`oc_preferences` TO `meineDB`.`abcde_preferences`;
RENAME TABLE `meineDB`.`oc_privatedata` TO `meineDB`.`abcde_privatedata`;
RENAME TABLE `meineDB`.`oc_properties` TO `meineDB`.`abcde_properties`;
RENAME TABLE `meineDB`.`oc_share` TO `meineDB`.`abcde_share`;
RENAME TABLE `meineDB`.`oc_storages` TO `meineDB`.`abcde_storages`;
RENAME TABLE `meineDB`.`oc_users` TO `meineDB`.`abcde_users`;
RENAME TABLE `meineDB`.`oc_vcategory` TO `meineDB`.`abcde_vcategory`;
RENAME TABLE `meineDB`.`oc_vcategory_to_object` TO `meineDB`.`abcde_vcategory_to_object`;
[/code]

und anschließend noch in der config/config.php das neue Präfix eingetragen:

[sourcecode lang=“php“ highlight=“10″ toolbar=“false“]
<?php
$CONFIG = array (
‚instanceid‘ => ‚…‘,
‚passwordsalt‘ => ‚…‘,
‚datadirectory‘ => ‚/home/www/htdocs/owncloud/data‘,
‚dbtype‘ => ‚mysql‘,
‚version‘ => ‚6.0.0.13‘,
‚dbname‘ => ‚cloud_oc6‘,
‚dbhost‘ => ‚localhost‘,
‚dbtableprefix‘ => ‚abcde_‘,
‚dbuser‘ => ‚johndoe‘,
‚dbpassword‘ => ‚mypassword‘,
‚installed‘ => true,
);[/sourcecode]

SSL-Proxy

Wer kein eigenes SSL-Zertifikat besitzt, kann ownCloud auch über einen SSL-Proxy seines Providers benutzen – bei der Einrichtung hat sich mit dem Versionswechsel nichts geändert, die config.php muss wie gehabt um ein paar Parameter erweitert werden. Die Angaben im Beispiel unten sind von HostEurope; wer woanders hostet muss entsprechend die Adressen seines Providers eintragen.

[code lang=“php“ toolbar=“false“ gutter=“false“ highlight=“4,5,6,7″]<?php
$CONFIG = array (

‚overwritehost‘ => ’ssl.webpack.de‘,
‚overwriteprotocol‘ => ‚https‘,
‚overwritewebroot‘ => ‚/meinedomain/owncloud‘,
‚overwritecondaddr‘ => ‚^10\.30\.7\.1(?:37|38|39|40)$‘,
);[/code]

Die Cloud wird über den SSL-Proxy mit folgender Adresse aufgerufen:
https: //ssl.webpack.de/meinedomain/owncloud
(also overwriteprotocol + overwritehost + overwritewebroot).

Achtung: im ersten Anlauf konnte ich mit dem neuen Desktopclient (1.5.0) in dieser Konstellation (OC6 mit SSL-Proxy) mein eingebundenes S3-Verzeichnis (s.u.) nicht synchronisieren. :o Der Grund ist mir noch nicht ganz klar, aber die Fehlermeldung läßt Schlimmes vermuten: „CSync konnte sich nicht über einen Proxy verbinden. 500 Internal Server Error“.
Im zweiten Anlauf scheint es eher an OC6 als am Client zu liegen, denn mit der vorherigen Version 1.4.2 kommt die gleiche Fehlermeldung.

Mit ownCloud 6.0.0a und dem Desktop Client 1.5.0 funktioniert es jetzt – bis auf ein bekanntes Problem: Dateien mit Pluszeichen (+) im Namen werden nicht synchronisiert.

S3-Anbindung

Im Backend kann man jetzt wesentlich mehr Parameter für eine S3-Verbindung eingeben, unter anderem auch einen eigenen Hostnamen wie z.B. cs.hosteurope.de. Damit werden die Updates wieder einfacher, weil ich endlich nicht mehr in jeder neue Version die entsprechenden Dateien manuell patchen muss. :hurra:

Ob der Bucketname jetzt auch Punkte akzeptiert (bei Amazon selber geht das nicht, bei Hosteurope ist das kein Problem) habe ich nicht getestet, weil es mich im Moment nicht interessiert.

oc6_S3interface

Bilder werden nicht angezeigt

Auch kein neues Problem: Nicht alle Fotos aus meinem eingebundenen S3-Verzeichnis werden in ownCloud auch als Bilder angezeigt; in der Tabelle oc_filecache landen sie mit „falschem“ MIME-Typ. Mit dem Versionswechsel haben sich allerdings auch die mimetypes geändert, so dass die Einträge in der Tabelle jetzt wie folgt aktualisiert werden können:

[code lang=“sql“ gutter=“0″ toolbar=“false“]UPDATE ‚oc_filecache‘ set mimetype=6, mimepart=5 WHERE name like ‚%.jpg‘ and mimetype&amp;lt;&amp;gt;6[/code]

Auch das ist mit der 6.0.0a – zumindest bei mir – behoben.

Sonderzeichen in Dateinamen

Wie oben schon angerissen: Pluszeichen in Dateinamen führen dazu, dass die Datei nicht synchronisiert wird. Man kann zwar im Browser eine Datei mit Pluszeichen im Namen neu erzeugen, die dann sogar vom Sync-Client heruntergeldean wird (!!) – aber anschließend kommt beim nächsten Sync wieder die Fehlermeldung :wallbash:
Die guten deutschen Umlaute scheinen die Weboberfläche zu irritieren: der angezeigte Dateiname wird vor dem Umlaut abgeschnitten; in der Datenbank steht der komplette Name incl. Umlaut. Statt Ina Müller.mp3 wird einfach nur Ina M angezeigt, ohne Dateityp und ohne Icon.

(Fortsetzung folgt…)

Bye-Bye, Sugarsync

Man kann sicherlich endlos lange darüber diskutieren, ob und welche Dienstleistungen im Internet kostenlos verfügbar sein sollten – ich gebe zu, dass ich im privaten Gebrauch eher zu kostenlosen Angeboten tendiere (wohl wissend, dass ich dort oft auch selbst die Ware bin und nicht der Kunde).

Wenn dann ein kostenloses Angebot auf einmal kostenpflichtig wird, trennen sich unsere Wege – die im Preis enthaltenen tollen Zusatzfeatures sind meistens an meinem persönlichen Bedarf vorbei (ansonsten hätte ich ja gar nicht erst mit der Nutzung des kostenlosen Paketes angefangen). sugarsync_upgrademailEin aktuelles Beispiel ist Sugarsync, bei denen ich seit geraumer Zeit 5 GB Cloudspeicher nutze. Mehr brauche ich nicht, von daher haben mich die größeren Pakete (ab 30 GB aufwärts) nie interessiert.

Warum also sollte ich jetzt 60 GB (kleinere Pakete werden nicht mehr angeboten) bezahlen, wo ich doch schon von den 5 GB nur knapp 3 nutze? :irre:

Auch ein noch so toller Rabatt von 75% (im ersten Jahr) wird mich nicht dazu bringen, mein Geld für etwas auszugeben, was ich in dieser Form schlicht und ergreifend nicht brauche.

Also leiste ich gern meinen kleinen Beitrag zur Rentabilisierung der Kundenstruktur bei Sugarsync und verabschiede mich, höchstwahrscheinlich auf Nimmerwiedersehen.

Zumal es ja mit ownCloud eine durchaus brauchbare Alternative gibt. Bisher hatte ich beide parallel im Einsatz, das wird sich jetzt wohl ändern.

ownCloud

ownCloud 5 als online-Adressbuch

Zur Installation von ownCloud 5 habe ich hier schon etwas geschrieben, jetzt geht es an die Ablösung der Google-Server… :evil:

ownCloud Kontakte synchronisieren

… mit Android

carddav-sync-logoGibt es leider nicht umsonst, aber die paar Euro für Marten Gajdas CardDAV (es gibt auch eine kostenlose Version, bei der werden allerdings nicht alle Kontaktfelder synchronisiert) scheinen mir sehr gut angelegt. Einfach auf dem Handy ein neues Konto mit CardDAV angelegt, die Adresse des entsprechenden ownCloud Adressbuchs (findet man online in seiner Cloud unter Kontakte – Einstellungen, sieht in etwa so aus: eingegeben – fertig. Jetzt müssen die Kontakte nur noch diesem neuen Konto zugeordnet werden und der Synchronisierung in die eigene Cloud steht nichts mehr im Wege.

MyPhoneExplorer LogoMein Master-Adressbuch wird (aus diversen Gründen immer noch) in Outlook gepflegt; für die Synchronisierung von Outlook mit Android kommt für mich nur der geniale MyPhoneExplorer in Frage. Vor der nächsten Synchronisierung mit dem PC schnell im MPE Client am Handy eingestellt, dass Kontakte nur mit dem CardDAV Konto synchronisiert werden sollen, synchronisieren – und fertig. Alle Kontakte stehen im richtigen Konto und werden bei der nächsten Synchronisierung vom Handy nach ownCloud übertragen.

Leider unterstützt ownCloud in Version 5.0.5 noch keine Jahrestage. Die werden zwar gespeichert und bleiben auch bei Änderungen am Kontakt erhalten, aber sie werden nicht angezeigt (und können natürlich auch nicht bearbeitet werden).

… mit Thunderbird

Dazu hat Jürgen bei BITblocker.de bereits eine sehr ausführliche Anleitung geschrieben, auf die ich hier gerne verweise.

Schematisch sieht das dann bei mir wie folgt aus:

Kontakte via ownCloud synchronisierenDie Synchronisierung mit Outlook und MyPhoneExplorer passiert manuell, alles andere läuft automatisch – jegliche Änderungen werden kreuz und quer zwischen allen Geräten verteilt.

 

ownCloud

Alles in die eigene Cloud mit ownCloud 5?

Es hat sich einiges getan beim Versionswechsel auf ownCloud 5 – es fühlt sich deutlich schneller und performanter an. Genauer gesagt: es fühlt sich jetzt so gut an, dass ich den ernsthaften Versuch unternehmen werde, mir mit ownCloud meine eigene Backup-Wolke einzurichten und mich auf ein Leben ohne Google-Synchronisierung vorzubereiten. Nicht dass ich meine Kontakte und Dateien vom Handy mit Google synchronisieren würde – aber trotzdem hätte ich sie gerne online gesichert.

Installation von ownCloud

Wie schon bei den vorherigen Versionen war die Installation bei HostEurope problemlos in ein paar Minuten durchgelaufen. Aber jetzt fangen die Herausforderungen und teilweise auch die Kämpfe mit Kinderkrankheiten der ownCloud an…

SSL-Verbindung

Als ganz normaler User mit begrenztem Budget habe ich natürlich kein eigenes SSL-Zertifikat und bin somit auf den SSL-Proxy angewiesen; das reicht mir vollkommen. In der offiziellen Dokumentation fand sich der entscheidende Hinweis auf die notwendigen zusätzlichen Parameter in der config.php; die benötigten IP-Adressen der SSL-Proxies von HostEurope (10.30.7.137 – 140) stehen in den HE FAQ:
[code lang=“php“ title=“/config/config.php“ gutter=“false“]
‚overwritehost‘     =&gt; ’ssl.webpack.de‘,
‚overwriteprotocol‘ =&gt; ‚https‘,
‚overwritewebroot‘  =&gt; ‚/meinedomain/owncloud‘,
‚overwritecondaddr‘ =&gt; ‚^10\.30\.7\.1(?:37|38|39|40)$‘,[/code]
Die Cloud wird über den SSL-Proxy mit folgender Adresse aufgerufen:
https ://ssl.webpack.de/meinedomain/owncloud
(also overwriteprotocol + overwritehost + overwritewebroot).

Aber Achtung: zumindest gefühlt ist die Verbindung über den SSL-Proxy langsamer als ohne – hier muss man sich also im Zweifelsfall zwischen gesichert und flott entscheiden. Beides funktioniert jedenfalls parallel so lange nichts anderes in ownCloud konfiguriert ist.

S3-Anbindung

ownCloud kann verschiedene Cloud-Speicher einbinden, u.a. auch Amazon S3. Mit ein paar kleinen Anpassungen an der S3-Integration kann man auch eigenen S3-Speicher bei anderen Providern (z.B. bei HostEurope) einbinden; wie das genau geht, steht im ownCloud-Forum. Folgende Dateien müssen angepasst werden:

  • /apps/files_external/lib/amazons3.php
  • /apps/files_external/lib/config.php
  • /3rdparty/aws-sdk/services/s3.class.php

Dateien werden nicht oder falsch angezeigt

Kann ein simples Cache-Problem nach der Aktualisierung sein. Abhilfe schafft entweder eine saubere Neuinstallation oder eine manuelle Bereinigung der Datenbank (siehe hier): Die Tabellen oc_filecache und oc_storages leeren.

Keine Musikdateien gefunden

Egal ob frisch hochgeladen oder bereits vorhanden, der Musikplayer von ownCloud hat sich partout geweigert, irgendwelche Dateien zu finden. Die Lösung für mich stand hier:

[code lang=“php“ firstline=“101″ title=“/3rdparty/getid3/getid3.php“]
$option_max_2gb_check = false;
[/code]

Seit Version 5.0.5 steht der Parameter auf null und soll den richtigen Wert automatisch aus den php-Einstellungen (PHP_INT_MAX) des Servers erkennen – das funktioniert aber zumindest in meinem Setup nicht.

Und nach einer weiteren kleine Änderung in /apps/media/lib/extractor.php werden tatsächlich alle Musikdateien (auch die im angehängten S3 Speicher) gefunden. Auch hier mag das Problem an meinem Setup liegen, die automatische Erkennung anhand von allow_furl_open funktioniert bei mir nicht.

[code lang=“php“ firstline=“49″ title=“/apps/media/lib/extractor.php“]
public function extract($path) {
/*  if(ini_get(‚allow_url_fopen‘)) {
$file = \OC\Files\Filesystem::getView()-&amp;gt;getAbsolutePath($path);
$data = @$this-&gt;getID3-&gt;analyze(‚oc://‘ . $file);
} else {
// Fallback to the local FS
$file = \OC\Files\Filesystem::getLocalFile($path);
}
*/
$file = \OC\Files\Filesystem::getLocalFile($path);
$data = @$this-&gt;getID3-&gt;analyze($file);

\getid3_lib::CopyTagsToComments($data);

return $data;
}[/code]

Zeile 58 ist nur eine Kopie von Zeile 55 (weil ich die if-Abfrage komplett auskommentiert habe), Zeile 59 ist eine Ergänzung aus dem oben genannten Link.

Mediaplayer spielt nichts ab

Nachdem endlich meine MP3s angezeigt wurden, weigerte sich der integrierte Player immer noch standhaft und gab keinen Mucks von sich. Auch das ist ein bereits bekannter Fehler, für den es schon eine Lösung gibt: eine einzige Zeile in apps/media/ajax/api.php verschoben und schon höre ich Musik …
Das Problem tritt in 5.0.5 nicht mehr auf.

Dateien synchronisieren

In meinem S3 liegen schon ein paar GB synchronisierte Dateien; leider schafft der Desktop Client es nicht, hier einen sauberen Abgleich vorzunehmen. Stattdessen fängt er an, alle (lokal bereits vorhandenen) Dateien herunterzuladen und mit erweitertem Namen (aus bla.jpg wird bla_conflict-20130326-223906.jpg) abzuspeichern.

Die Ursache ist – wieder einmal – ziemlich banal: lokal sind die Dateien mit dem Aufnahmedatum abgespeichert. Nach dem Hochladen mit DragonDisk bekommen sie das Hochladedatum als „last change“. Beim Synchronisieren gewinnt natürlich die jüngste „Änderung“ und führt zu einem Duplikat.

Die Lösung ist zum Glück ebenfalls trivial, wenn auch einmalig zeitaufwändig: Alle lokalen Dateien löschen (bzw. sicherheitshalber erstmal nur an einen andren Ort verschieben) und die Synchronisation starten. Das ist auf jeden Fall besser als in die andere Richtung, denn üblicherweise hat man im Downstream wesentlich mehr Bandbreite verfügbar als im Upstream.

Bilder synchronisieren

Mit ownCloud 5.0.8 und dem Desktop Client in Version 1.3.0 ist mir noch ein „interessantes“ Phänomen aufgefallen: Bilder werden beim Hochladen in ownCloud mit dem falschen MIME-Type in der Datenbank indiziert – und sind folgerichtig nicht in der Bilder-App zu sehen. Warum das so ist und ob es dazu auch schon einen offiziellen Bug im Tracker gibt, weiß ich noch nicht.

Aber das Problem läßt sich mit einem kleinen SQL-Statement korrigieren:[sql]
update `oc_filecache` set mimetype=10, mimepart=5 WHERE name like ‚%.jpg‘ and mimetype=9
[/sql]

 

Wie sich die Kontakte zwischen PC, Handy/Tablet und ownCloud synchronisieren lassen steht in einem eigenen Artikel

Ab in die Wolke?

LogoEigentlich schon immer habe ich das Problem, zumindest bestimmte Dateien über mehrere Computer hinweg synchron zu halten – immer wieder mit dem USB-Stick hin- und herlaufen oder sich Dateien per Mail schicken ist auf die Dauer keine wirklich zufriedenstellende Lösung. Und spätestens wenn man die gleiche Datei auf zwei unterschiedlichen Rechnern bearbeitet, kommt man gehörig ins Schleudern….

Beim Surfen bin ich dann heute auf SugarSync gestoßen – und habe mich gleich mal zum Ausprobieren angemeldet.