Kalender-Synchronisation

Für Profis: Raspberry Pi als Sync-Server nutzen

02.11.2014 von Stephan Lamprecht
Es sprechen viele gute Gründe für die Einrichtung einer privaten Cloud. Dieser Artikel stellt eine Lösung zur Synchronisierung von Adressen und Terminen auf Basis des Raspberry Pi vor.

Wir alle haben uns längst daran gewöhnt, auf jedem Endgerät stets unsere aktuellen Termine und die Adressen von Freunden und Bekannten einsehen zu können. Die von Apple und Google unterhaltenen Infrastrukturen machen das möglich. Aber wer nicht möchte, dass die Nachrichtendienste dieser Welt auf Kontaktdaten zugreifen, braucht eine persönliche Cloud, die er selbst im Griff im hat.

Statt Owncloud das schlanke Baikal

Owncloud zählt zu den bekanntesten Lösungen, wenn es darum geht, eine private Cloud einzurichten. Das System bietet weit mehr als nur den Abgleich zwischen Kalendern. Dafür ist aber der Aufwand für Installation und Pflege recht hoch. Eine schlanke Alternative ist Baikal, das seit zwei Jahren entwickelt wird. Ein wenig Software-Bastelei dürfen Sie aber auch hier nicht scheuen. Die Software ist dazu gedacht, Kalender- und Kontaktdaten zentral zur Verfügung zu stellen und somit als Basis zur Synchronisation mit externen Geräten zu dienen. Die Anforderungen an den eingesetzten Server sind bescheiden, so dass sich Baikal perfekt zum Einsatz auf dem Raspberry Pi eignet. Sollten Sie jedoch vorhaben, auch Dokumente zentral über einen Server anzubieten, ist Baikal nicht die favorisierte Lösung.

Baikal installieren: Starten Sie die grafische Oberfläche Ihres Raspberry, und öffnen Sie dort ein Terminal. Die Verknüpfung zum „LX Terminal“ direkt auf dem Desktop führt Sie in eine Konsole. Geben Sie zunächst

sudo –i

ein. Damit erhalten Sie die Rechte des Systemverwalters. Die Rechte benötigen Sie, damit Sie die Installationsdateien an die korrekten Stellen kopieren dürfen. Selbstverständlich können Sie sich auch für jedes Kommando eigens die root-Rechte beschaffen, indem Sie bei den nachfolgenden Eingaben stets ein sudovoranstellen.

Im ersten Schritt müssen Sie auf dem Raspberry einen Webserver installieren. Sie haben hier mehrere Möglichkeiten. Die einfachste und schlankste Variante ist „lighttpd“. Baikal selbst kann optional auch mit einem My-SQL-Server kommunizieren. Aber aus Gründen der Leistung soll in diesem Fall darauf verzichtet werden. Geben Sie im Terminal

apt-get install lighttpd

ein. Jetzt benötigen Sie noch einige zusätzliche Komponenten, damit Baikal auch dynamische HTML-Seiten erzeugen kann:

apt-get install php5-common php5-cgi php5

Ist die Installation erfolgreich, gilt es, die Ausführung von PHP auf dem System zu erlauben. Dies geschieht mit dem Kommando

lighty-enable-mod fastcgi-php

Danach starten Sie den Server erstmals neu:

service lighttpd restart

Nach der Ersteinrichtung: Beim Aufruf der IP-Adresse des kleinen Computers begrüßt Sie nach der Installation von lighttpd eine Platzhalterseite.

Dies quittiert der Raspberry mit einem Herunterfahren des Dienstes und der Rückmeldung, wenn der Webserver wieder gestartet ist. Der Raspberry Pi hat im internen Netzwerk vom Router bereits eine IP-Adresse zugewiesen bekommen. Um die Adresse herauszufinden, verwenden Sie im Terminal ifconfig. Das System meldet jetzt eine Menge an Informationen zurück. Suchen Sie dort nach einem Eintrag „eth0“, wenn die Verbindung per Kabel hergestellt wird. Die Ziffernfolge neben „inet addr“ ist die gesuchte IP-Adresse. Öffnen Sie dann einen Browser auf einem anderen PC in Ihrem Netzwerk, und geben Sie dort die IP-Adresse des Raspberry ein. Sie sollten nun eine Begrüßungsseite des Webservers sehen.

Wechseln Sie im Terminal mit cd /var/wwwin das Verzeichnis für die Webdokumente. Dort liegen zum Beispiel statische HTML-Seiten, wenn Sie den kleinen Computer als Webserver betreiben. Nun geben Sie ein:

wget http://baikal-server.com/get/baikal-flat-0.2.7.zip

Das Tool wget sollte eigentlich immer installiert sein. Ist das nicht der Fall, so installieren Sie es mit apt-get install wgetnach. wget holt die Installationsdateien von Baikal auf Ihren Rechner. Falls es zu einer Fehlermeldung kommt, besuchen Sie die Projektseite http://baikal-server.com/und kontrollieren, ob sich möglicherweise die Versionsnummer der Software geändert hat. Ist die Übertragung abgeschlossen, entpacken Sie mit

unzip baikal-flat-0.2.7.zip

das heruntergeladene Archiv. Dessen Inhalt verschieben Sie jetzt in ein Verzeichnis, dessen Namen Sie sich einprägen. Ist der Ort bereits passend, genügt das Umbenennen des entpackten Ordners. Das folgende Beispiel geht davon aus, dass der Ort passt und dass Sie die Installation später im Ordner „kalender“ erreichen wollen:

mv baikal-flat kalender

cd /kalender/

mkdir db

Damit die Installationsroutine starten kann, wird eine zusätzliche Datei benötigt. Diese legen Sie mit

touch Specific/ENABLE_INSTALL

Jetzt gilt es noch, einen speziellen Benutzer und eine passende Gruppe einzurichten

sudo groupadd www-data

sudo adduser www-data www-data

sudo usermod -a -G www-data www-data

und abschließend die Rechte am Verzeichnis zu ändern:

chown -R www-data:www-data /var/www/kalender

Statt „kalender“ benutzen Sie den Verzeichnisnamen, den Sie sich vorher ausgesucht haben. Ab sofort können Sie Ihren neuen Server besuchen. Dazu nutzen Sie die IP-Adresse des Raspberry und fügen nach einem Schrägstrich den Namen des Verzeichnisses hinzu. Ihr Server sollte Sie mit der Startseite der Installation begrüßen.

Baikal einrichten

Baikal-Assistent: Die Dialoge zur Einrichtung sind sehr übersichtlich. Meist können Sie alle Vorgaben übernehmen.

Nachdem Sie alle Programmkomponenten auf den Server übertragen haben, beginnen Sie mit der Einrichtung der Installation. Im ersten Dialog des Assistenten vergeben Sie ein Passwort für das Benutzerkonto des Administrators. Die weiteren Optionen lassen Sie am besten unangetastet. Es sei denn, Sie können bereits abschätzen, dass Sie nur die Synchronisation von Terminen nutzen wollen. Dann deaktivieren Sie das Carddav-Protokoll. Klicken Sie auf „Save Changes“. Auf der nachfolgenden Seite geht es um die Einrichtung der Datenbank. Auch hier müssen Sie keine Änderungen vornehmen. Der Schritt ist vorwiegend für Nutzer, die einen My-SQL-Server verwenden. Damit ist die Installation bereits abgeschlossen. Sie besuchen die Log-in-Seite nach einem Klick auf „Start“.

Loggen Sie sich nun als Administrator in Ihre Installation ein. Wählen Sie dort aus der oberen Navigation den Eintrag „Users and resources“, und klicken Sie danach in der oberen Ecke auf „Add user“. Es müssen nur wenige Felder gefüllt werden. Mit „Save Changes“ legen Sie den Nutzer an. Jeder Nutzer kann auf einen oder mehrere Kalender zugreifen. Welche das sind, bestimmen Sie mit einem Klick auf „Calendars“ neben dem Benutzernamen. Über den Link können Sie auch neue Kalender einrichten. Sobald Sie den Kalender zugewiesen oder einen neuen angelegt haben, steht dieser auf dem Server zur Verfügung.

Raspberry Pi über das Web erreichbar machen

Damit Sie von jedem Ort auf die Daten des Raspberry Pi zugreifen können, sind drei weitere Arbeiten erforderlich. Am Router stellen Sie ein, dass Ihr Raspberry Pi stets die gleiche IP-Adresse zugewiesen bekommt. Dazu müssen Sie sich in aller Regel nur die gerade verbundenen Geräte ansehen, den Raspberry identifizieren und sich dessen MAC-Adresse notieren. In den Optionen des DHCP-Servers des Routers suchen Sie sich dann eine freie Adresse aus. Das Zuweisen einer festen IP-Adresse bietet den Vorteil, dass Sie etwa aus Wartungsgründen im internen Netz die Admin-Oberfläche stets unter der gleichen Adresse erreichen. Außerdem können Sie das Netzwerk so konfigurieren, dass Datenzugriffe von außen stets an diese Adresse weitergereicht werden.

Dies ist dann auch bereits die zweite Arbeit, die Sie erledigen müssen: Die meisten Router verfügen über eine Firewall, die keine Zugriffe von außen zulässt. Das müssen Sie, zumindest für die IP-Adresse des Raspberry, ändern.

Schließlich buchen Sie ein kostenloses Konto bei einem Anbieter für dynamische DNS-Dienste (wie www.noip.com). Viele Router wie die Fritzbox oder Geräte von Dlink halten bereits die Eingabe der Zugangsdaten für solche Dienste bereit. Damit bleibt Ihr Raspberry stets unter dem Domain-Namen erreichbar (den Sie beim Anbieter eingerichtet haben), obwohl Ihr Provider Ihnen einmal pro Tag eine neue externe IP-Adresse zuweist.

Synchronisation auf iOS und Android anlegen

App für Android: Das kostenpflichtige Caldav Sync vereinfacht für einen kleinen Preis die Synchronisation erheblich.

Steht die Infrastruktur, richten Sie die Kalender auf Ihren mobilen Geräten ein. Auf iPhone oder iPad wechseln Sie dazu in die „Einstellungen“. Unter „Mail, Kontakte, Kalender“ wählen Sie unter „Accounts“ die Option, um ein neues Konto hinzuzufügen. Im nachfolgenden Dialog markieren Sie „Andere“. Nutzen Sie nun „CalDAV-Account“.Als Angaben benötigen Sie Benutzernamen und Passwort, wie Sie diese als Admin für das jeweilige Konto eingerichtet haben.

Zum anderen brauchen Sie den Zugriff auf den Server. Die URL zum Server sieht zur Einrichtung eines Kalenders im Prinzip so aus:

http://www.[server].tld/[baikal_ordner]/cal.php/principals/[benutzer]

Sobald Sie alle Angaben gemacht haben, prüft das Gerät den Zugriff automatisch. Android besitzt keine unmittelbare Unterstützung für das Caldav-Protokoll. Die Funktion müssen Sie also bei Bedarf mit einer Dritt-Software nachrüsten, zum Beispiel mit Caldav Sync, das zum Preis von rund 2,50 Euro im Google Playstore zu bekommen ist.

Die Installation von Baikal ist auch dazu in der Lage, Aufgaben zu speichern. Ob diese sich mit Ihrem Gerät oder Computer abgleichen lassen, ist eine Frage der eingesetzten Software.

Adressbücher anlegen

Wenn Sie wollen, richten Sie auf dem Server auch zentrale Adressbücher ein. Sie müssen Sie dazu den Admin-Bereich aufrufen, den Sie durch ein der Server-URL nachgestelltes /adminerreichen. Über „Users and ressources“ rufen Sie die Benutzerverwaltung auf. Jeder Nutzer hat zumindest Zugriff auf ein persönliches (default) Adressbuch. Dessen Eigenschaften ändern Sie einfach mit einem Klick auf „Adress Books“ neben dem Namen der Person.

Das Einrichten der Adressbücher funktioniert bei Android und iOS wieder unterschiedlich. Auf dem Mac und iOS-Geräten ist der Weg wie beim Kalender beschrieben. Für Android besorgen Sie sich eine App wie Carddav-Sync aus dem Google Playstore, und Sie geben als Pfad

http://[servername].tld/[baikal_ordner]/card.php/addressbooks/[benutzer]/default

zu Ihrem Adressbuch ein.

Betriebssystem installieren

Dieser Beitrag geht davon aus, dass Sie bereits einen Raspberry Pi besitzen, auf dem Debian Wheezy läuft. Wenn nicht, ist das auch kein Problem: Besorgen Sie sich einen Raspberry Pi, eine SD-Speicherkarte und am besten ein USB-Netzteil. Eine USB-Tastatur, eine Maus sowie einen Monitor, den Sie per HDMI-Kabel anschließen, vervollständigen die Ausstattung.

Auf der Seite des Projekts (www.raspberrypi.org/downloads/) laden Sie Noobs herunter, entpacken das Archiv und kopieren den Inhalt vollständig auf die SD-Karte. Stecken Sie danach die Karte in den Raspberry, verkabeln Sie alles und starten Sie den Rechner durch das Anschließen an die Stromquelle.

Nach einigen Augenblicken werden Sie von einem Auswahlmenü begrüßt. Hier entscheiden Sie sich dann für die Installation von Raspbian. Sie müssen nur noch den Anweisungen auf dem Bildschirm folgen, und schon ist der Minirechner bereit für die weiteren Schritte. Wenn Sie sich an der Eingabeaufforderung befinden, dann genügt der Befehl startx, um den grafischen Desktop zu starten.

(PC-Welt/ad)