Skip to content

Android/iOS: mit Nextcloud (und Raspberry Pi) etwas Unabhängigkeit von Google und Apple

Android

Das hier beschriebene Setup habe ich mit Nextcloud auf einem Raspberry Pi zu Hause eingerichtet, es ginge praktisch genauso ebenso mit Owncloud oder/und einem normalen Webhoster.


Sowohl Android als auch iOS synchronisieren standardmässig Daten wie Termine oder Kontakte. Dadurch sind diese gesichert und man kann sie auf mehreren Geräten und auch im Web sehen und verwalten. Aber nicht jeder will (oder darf!) diese Daten “irgendwo” im Internet speichern.

Merke: Es gibt keine Cloud, es ist nur der Computer eines Anderen. Und dieser Computer kann natürlich auch der Eigene sein.


Raspberry Pi 3

Vorraussetzung für eine der eingebauten Funktion vergleichbaren Synchronisation ist ein Rechner mit Internetverbindung, der immer erreichbar ist und natürlich etwas Software. Letztere ist hier Nextcloud, als Rechner kann dafür z.B. ein Server bei einem beliebigen Webhoster sein — oder ganz konsequent ein Server(chen) zu Hause. In meinem Beispiel mein Raspberry Pi 3 an einer VDSL-Leitung.

Anders als die Groupware Tine 2.0, mit dem ich das 2011 hier gebloggt hatte, ist Nextcloud, bzw. dessen Urpojekt Owncloud, als Dateisynchronisationsdienst ala Dropbox entstanden, der auch Module für Kontakte und Kalender mitbringt. Es gibt auch noch diverse andere Module, aber ich will hier vor allem die Synchronisation von Dateien, Kontakten und Terminen beschreiben.

Die Installation von Nextcloud ist hinreichend dokumentiert, das erzähle ich hier jetzt nicht nach wink. Außerdem ist mein Setup mit Arch Linux und lighttpd statt Raspian mit Apache eh nicht die normale Konfiguration.

Für die Nutzung auf einem Kleincomputer wie dem Raspberry Pi ist Nextcloud recht genügsam, es benötigt einen Webserver mit PHP, aber keine ausgewachsene Datenbank, was Ressourcen spart. Benutzeraccounts usw. werden dann in einer dateibasierten Sqlite-Datenbank gespeichert. Für den Heimgebrauch ist das absolut ausreichend, wer größeres vorhat sollte aber doch eine MySQL Datenbank verwenden. Als Webserver verwende ich wie erwähnt lighttpd, auch das ist komplett Geschmackssache.
Nextcloud KalenderFür die Synchronisation wichtig(er) ist, dass die Kommunikation verschlüsselt via https erfolgt. Ich verwende ein kostenloses LetsEncrypt-Zertifikat. Das Zertifikat erneuert mein Pi selbstständig alle 2 Monate, viele Webhoster haben LetsEncrypt auch integriert. Unverschlüsselt sollte die Synchronisation nicht erfolgen! Verwende also https.

Nextcloud installiert man also auf seinem Webspace oder z.B. Raspberry Pi zu Hause. Anschließend richtet man dort (s)einen Benutzer ein, dessen Kontakte, Kalender usw. mit dem Smartphone synchronisiert werden sollen. Als Admin muss man noch die Apps für Kontakte und Kalender aktivieren. Es gibt auch noch weitere Apps, man kann z.B. auch noch einen Webmailer installieren, guck’ einfach mal die Liste durch.

Unter Android installiert man nun den Nextcloud-Client.Nextcloud Android Client Durch ihn erhält man Zugriff auf die Dateien, die man in der Nextcloud gespeichert hat und kann vom Smartphone aus Dateien in der Cloud speichern. Bestimmte Ordner lassen sich auch synchronisieren oder z.B. der Kameraordner auch automatisch sichern.
Ausserdem kann man aus der App ein Konto für die Kontakte und Kalender und Aufgaben einrichten. Technisch läuft das über CardDAV und CalDAV als Protokoll. Die Nextcloud-App erledigt das nicht selbst, sondern richtet DAVdroid (hatte ich in WAAV 310 vorgestellt) ein. DAVdroid kann man aus dem Play Store oder kostenlos aus dem alternativen Appstore F-Droid installieren. Der URL zur Synchronisation wird im Kalender angezeigt, nachdem man links unten auf das Zahnrad “Einstellungen & Import” klickt und sieht in etwa so aus: https://server.domain/nextcloud/remote.php/dav/
Android Kalender mit Nextcloud TerminenSo eingerichtet erledigt DAVdroid die Synchronisation von Kontakten und Kalendern und Nextcloud kümmert sich um die Dateien. Man kann nun also seine Kontakte und Termine in der eigenen “Cloud” verwalten und muss sie nicht bei Google speichern. Über das Webinterface von Nextcloud kann man außerdem jederzeit auch über das Webinterface auf die Daten zugreifen. Mein Raspberry Pi 3 schafft das für gelegentliche Zugriffe in akzeptabler Geschwindigkeit, wirklich schnell ist er aber aber nicht. Da ich das Webinterface selten nutze überwiegen für mich die Vorteile des geringen Stromverbrauchs und der Umstand, dass die Daten bei mir zu Hause sind, deutlich. Auf einem “richtigen” Server bei einem normalen Webspace ist die Geschwindigkeit natürlich kein Thema.

Unter iOS kümmert sich auch die Nextcloud-App um die Dateien,iOS meldet  die für Kontakte und Kalender verwendeten Protokolle CalDAV und CardDAV kann das System direkt ohne Zusatzprogramm. Man richtet einfach einen weiteren Account in den Einstellungen ein. Das ist Apple-typisch mit wenigen Angaben getan, ebenso Apple-typisch ist man aber aufgeschmissen, wenn es wie bei mir nicht funktioniert, weil man eben auch keinerlei verwertbaren Details bekommt ausser “klappt nicht!”
Wichtig ist vor allem, dass der Pfad für iOS und MacOS ein anderer ist: https://server.domain/nextcloud/remote.php/dav/principals/users/<benutzername>/
iOS synchronisierte KalenderDer Kalenderaccount wird nach gefühlt fünfmal das Gleiche eintragen ohne Fehler akzeptiert, etwas ungwohnt unter iOS musste ich den Kalender noch in der Kalender-App manuell hinzufügen. Aber ich kann jetzt Termine in dem Nextcloud-Kalender eintragen und sie werden synchronisiert.
Die Kontakte kann ich gar nicht ohne Fehler hinzufügen. Da man unter iOS nicht aussuchen kann, unter welchem Account ein Kontakt angelegt wird, wären es eh “nur lesen” Kontakte, aber immerhin das. Aber mir gelingt nicht einmal das sad
Da das theoretisch auch an meiner Konfiguration liegen könnte (warum funktioniert es aber unter Android und Thunderbird?) und das iPhone nicht mein Hauptgerät ist, hat das bei mir nicht die höchste Priorität. Grundsätzlich funktioniert es aber auch mit iOS, daher wollte ich es hier mit aufführen, auch wenn ich gerade mit der Konfiguration eines iPhones überfordert bin cheeky

Trackbacks

Keine Trackbacks

Kommentare

Ansicht der Kommentare: Linear | Verschachtelt

joede am :

joede

Zwei kurze Fragen:

  • läuft der Raspi im Heimnetz über DynDNS? Wenn ja, wie klappt das mit LetsEncrypt? Ist das transparent?
  • Arbeitet DAVdroid auch mit bidirektionalem Sync der Kalender und Kontakte? Wie geht er mit Konflikten um?

rowi am :

Auf Twitter lesen: rowi
rowi

Der Pi hat einen dynamischen Eintrag via duckdns, ja. Das LetsEncrypt Zertifikat wird für diesen Namen ausgestellt, nicht für die IP. Die Geräte greifen über den Namen zu, also über die externe Adresse. Über ein Script lasse ich alle 2 Monate das Zertifikat erneuern.

Der Sync funktioniert bidirektional. DAVdroid prüft alle X Minuten oder bei lokalen Änderungen. Konflikte hatte ich bei Kalender und Kontakten noch nicht, da ich effektiv ja der einzige bin, der Änderungen vornimmt, wenn auch an verschiedenen Geräten. Bei Dateien legt Nextcloud eine Kopie an bei Konflikten, wie sich die beteiligten Dienste bei Kalendereinträgen verhalten müsste ich heute Abend mal provozieren.

joede am :

joede

Nutzt Du das certbot-Paket?

Ach ja, wie machst Du das beim Zugriff im lokalen Netz mit dem dyndns-Namen. Klappt das, oder hast Du den dann in der /etc/hosts des Raspi auf die lokale IP umgebogen?

rowi am :

Auf Twitter lesen: rowi
rowi

Ich benutze certbot, ja.Certbot erneuert das Zertifikat, anschließend wird es für verschiedene Dienste wie Webserver, irc-bouncer usw. aufbereitet und verteilt und die Dienste neu gestartet

Der Zugriff im LAN funktioniert ohne weitere Einträge über den dyndns-Namen, DNS Server ist eine Fritzbox.

joede am :

joede

Danke für die Infos. Bei mir läuft ein dedizierter dnsmasq. Ich weiß nicht, ob die externe IP dann im lokalen Netz gefunden wird. Ich werde es mal probieren. wink

Kommentar schreiben

Textile-Formatierung erlaubt
Standard-Text Smilies wie :-) und ;-) werden zu Bildern konvertiert.
Umschließende Sterne heben ein Wort hervor (*wort*), per _wort_ kann ein Wort unterstrichen werden.
Die angegebene E-Mail-Adresse wird nicht dargestellt, sondern nur für eventuelle Benachrichtigungen verwendet.
Twitter, Identica, Pavatar, Gravatar, Wavatars, Monster ID Autoren-Bilder werden unterstützt.
Wenn Du Deinen Twitter Namen eingibst wird Deine Timeline in Deinem Kommentar verlinkt.
Bewirb einen Deiner letzten Artikel
Dieses Blog erlaubt Dir mit Deinem Kommentar einen Deiner letzten Artikel zu bewerben. Bitte gib Deine Blog URL als Homepage ein, dann wird eine Auswahl erscheinen, in der Du einen Artikel auswählen kannst. (Javascript erforderlich)
Formular-Optionen