Radikal synchron
Mit dem eigenen Radicale-Server für Termine und Adressen behalten Sie die Daten im Griff – für Familie und Büro.
G lücklicherweise hat der Siegeszug der Smartphone- und Tablet-Betriebssysteme auch die Implementierung offener Standards angespornt. Heute sind IMAP (für den E-Mail-Zugriff) und die WebDAVbasierten Protokolle CalDAV (für Kalender) und CardDAV (für Adressbücher) Quasistandards, die auch in Unternehmensumgebungen gerne eingesetzt werden. Während IMAP mittlerweile bei allen Freemail-Providern und in günstigen Hostingpaketen inklusive ist, benötigt die Kalender- und Adressbuchsynchronisation oft Eigeninitiative. Eine Lösung für Linux-Systeme (Raspberry Pi oder vServer) haben wir auf Basis von Nextcloud in Ausgabe 6/2017 vorgestellt (die Anleitung nden Sie auf Heft-DVD), in diesem Artikel beschreiben wir den einfacher einzurichtenden Server Radicale, der sich auch auf Windows sehr wohlfühlt.
Prinzip „faule Synchronisation“
Der Server für die Kalender- und Adressbuchsynchronisation muss nicht ständig laufen: Alle CalDAV- und CardDAV-Clients sind darauf ausgelegt, in bestimmten Intervallen (meist bei lokalen Änderungen und dann alle fünf oder zehn Minuten) den Kontakt zum Server zu suchen und dann Änderungen abzugleichen. Installiert man Radicale auf einem Windows-PC, der täglich abends für ein paar Stunden angeschaltet wird, synchronisiert das Smartphone spätestens nach zehn Minuten zum Windows PC, nach weiteren zehn Minuten sind andere Geräte wie das Tablet auf dem aktuellsten Stand. Vielen Nutzern genügt diese Art der Synchronisation, an die Grenzen stößt sie jedoch, wenn beispielsweise Ehepaare Änderungen in einem gemeinsamen Kalender binnen weniger Minuten verfügbar haben wollen, was bei lediglich abendlicher Synchronisation im Heimnetz natürlich nicht realisierbar ist. Für derarti-
ge Fälle kann natürlich auch Radicale auf einem Einplatinencomputer installiert und per Portfreigabe verfügbar gemacht werden, auf diesem ist jedoch häu g Nextcloud einfacher einzurichten, daher dürfte Radicale auf Raspberry Pi vor allem dann eine Option sein, eine bestehende Radicale-Installation auf dem Linux- oder Windows-PC mit geringem Aufwand auf dauerhafte Verfügbarkeit umzustellen.
Einfache Installation
Radicale setzt lediglich ein bereits installiertes, einigermaßen aktuelles Python 3.x voraus. Das unter Ubuntu 16.04 vorhandene Python 3.5 arbeitet zum Beispiel mit Radicale gut zusammen, Windows-Nutzer sollten zum Download der aktuellsten Version von Python 3.x (bei Redaktionsschluss war dies 3.6.2) von https://www.python.org/ downloads/windows/ greifen. Zur Verwendung des Cygwin-Python oder von Microsofts Ubuntu-Umgebung für Windows raten wir nur, wenn zusätzliches Scripting mit LinuxTools erwünscht ist. Nach der Installation von Python verwenden Sie Pythons integrierten Package-Manager pip, um Radicale zu installieren. pip löst bei der Installation alle Abhängigkeiten auf, sodass letztlich ein einziger Befehl zur Installation genügt. Allerdings sollten Sie pip mit Administratorrechten ausführen. Unter Windows geben Sie dafür im Suchfeld des Startmenüs cmd ein, klicken dann das gefundene Programm Eingabeaufforderung mit der rechten Maustaste an und wählen Als Administrator ausführen. Nach Eingabe Ihres Passwortes be nden Sie sich in einer Shell mit Administratorrechten. Unter Linux stellen Sie dem Installationsbefehl einfach ein sudo voran. Unter Windows kann es je nach gewählten Installationsoptionen erforderlich sein, den kompletten Pfad zum Python-Interpreter (meist C:\Program Files (x86)\Python36-32\ Python.exe) zu verwenden, aus Gründen der besseren Lesbarkeit kürzen wir das immer mit python3 ab. Die Befehle zur Installation lauten: python3 -m pip install --upgrade bcrypt python3 -m pip install --upgrade passlib python3 -m pip install --upgrade radicale Unter Linux können Sie Radicale über den Paketmanager der Distribution installieren, wenn dieser mindestens Version 2.0 enthält. Dies hat den Vorteil, dass Startscripte und eine Musterkon guration mitinstalliert werden. Anschließend folgt ein simp- ler Test, nun in einer Shell ohne Administratorrechte (unter Linux ohne sudo, unter Windows in einer neuen, per Linksklick gestarteten Eingabeaufforderung). Wegen unterschiedlicher Pfad-Konventionen unterscheiden sich hier die Befehle für Windows … python3 -m radicale --config "" --
server-hosts 0.0.0.0:5232 --storagefilesystem-folder "%APPDATA%\radicale" … und Linux: python3 -m radicale --config "" --server-hosts 0.0.0.0:5232 --storagefilesystem-folder "$HOME/.radicale"
Rufen Sie nun im Browser http://local host:5232/ auf und loggen Sie sich als User mit leerem Passwort ein. Im Webinterface könnten Sie nun neue Kalender und Adressbücher anlegen, deren URLs Sie angezeigt bekommen. Ansonsten hält das Webinterface keine weitere Funktionalität bereit. Brechen Sie ab, indem Sie das Terminalfenster schließen. In den nächsten Schritten werden wir eine Kon gurationsdatei erstellen und Radicale als systemweiten Dienst kon gurieren.
Die Kon gurationsdateien
Im weiteren Verlauf dieses Artikels verwenden wir. C:\Radicale\conf als Ordner für die Radicale-Kon guration, C:\Radicale\data für die Daten. Unter Linux sind analog /etc/ radicale für Kon guation und /var/lib/radicale für Daten sinnvoll. Zunächst erstellen Sie eine Datei C:\Radicale\conf\server.txt mit folgendem Inhalt: [server] hosts = 0.0.0.0:5232 [auth] type = htpasswd htpasswd_filename = C:\Radicale\conf\ password.txt htpasswd_encryption = bcrypt [storage]
filesystem_folder = C:\Radicale\data Den Port können Sie auch von 5232 auf 80 abändern, wenn kein anderer HTTPServer auf dem Rechner läuft. Es folgt die Passwort-Datei, die den Nutzernamen und dann durch Doppelpunkt getrennt den Passwort-Hash enthält: alice:$2a$04$MrD... bob:$2a$04$v5w... Den Passwort-Hash können Sie durch einen Online-Generator wie http://bit.ly/24dpok2 erstellen (nicht empfohlen) oder mit einem recht umfangreichen Python-Kommando, das Sie im GitHub-Repository des Autors in den Dateien zu diesem Artikel nden github. com/mschlenker/PC-Magazin/. Starten Sie nun Radicale in einer Shell mit Administratorrechten mit dem Befehl: python3 -m radicale --config "C:\ Radicale\conf\server.txt" Testen Sie erneut den Aufruf im Browser. Nun müssen Sie sich mit dem vergebenen Nutzernamen der Passwortdatei und dem zum Hash gehörenden Passwort einloggen. Auch von anderen Rechnern im Netz sollten Sie jetzt den Zugriff testen. Gelingt er nur lokal, müssen Sie den Radicale-Port möglicherweise explizit in der Firewall für eingehende Verbindungen freigeben. Bevor Sie Radicale als Dienst installieren, sollten Sie sicherstellen, dass der Rechner, auf dem Radicale läuft, immer unter derselben IP-Adresse im Heimnetz auf ndbar ist. Typischerweise erledigen Sie das in den DHCP-Server-Einstellungen des DSL-Routers, wo Sie auch die aktuelle IP-Adresse des betreffenden Rechners auslesen können. Unter Windows ist die einfachste Möglichkeit, Radicale als Dienst einzurichten, der Non Sucking Server Manager (erhältlich unter https://nssm.cc/), der als Meta-Dienst verstanden werden kann, der sich um Start und Neustart verschiedenster Dienste kümmert. Installieren Sie zunächst NSSM, indem Sie die EXE beispielsweise nach C:\ Program Files\NSSM kopieren. Starten Sie dann die Diensteinstallation in einer Eingabeaufforderung mit Administratorrechten: nssm install Anschließend erstellen Sie im gra schen Frontend von NSSM einen neuen Dienst mit Namen Radicale, als Anwendungspfad ist der komplette Pfad zur Python.exe anzugeben und als Argumente: -m radicale --config "C:\Radicale\conf\ server.txt"
noch C:\Radicale\data\error.txt ein, um Fehler zu protokollieren. Diese Protokolldatei sollten Sie übrigens gelegentlich kontrollieren und löschen, wenn sie zu groß wird. Testen Sie dann mit einem Neustart, ob der automatische Start und danach das Login im Browser funktionieren. Für LinuxSysteme mit Systemd hält die Dokumentation unter http://radicale.org/setup/ ein sehr ausführliches Beispiel bereit, das den Start mit unpriviligierten Rechten beschreibt. Soll Radicale dagegen mit Root-Rechten gestartet werden, genügt es, in der Kon guration Daemonizing zu aktivieren und ihn über die Datei /etc/rc.local zu starten.
Daten ablegen
Wie bereits erwähnt, ist das Webinterface recht spartanisch gehalten und lässt nicht mehr zu, als Kalender und Adressbücher anzulegen. Ist dies geschehen, muss ein Caldav-Client den Kalender und ein Carddav-Client das Adressbuch mit Inhalten füllen. Sollen größere Mengen von Daten umgezogen werden, beispielsweise um einen Google-Kalender komplett entfernen zu können, existieren verschiedene Möglichkeiten: Kalender im ICS-Format können Sie bei Google direkt exportieren und diese einfach ins Radicale-Datenverzeichnis kopieren. Visitenkarten exportieren Sie als VCF-Datei (das kann beispielsweise auch Thunderbird mit lokalen Adressbüchern). Die Client-Situation ist ziemlich uneinheitlich: Apples Betriebssysteme unterstützen sowohl Caldav als auch Carddav von Haus aus, Windows 8 und höher unter dem Stichwort iCloud-Unterstützung ebenfalls, erfordern aber eine etwas umständlichere Einrichtung über Erweiterte Einstellungen. Android kann von Haus aus nur auf Google-eigene Kalender- und Adressbücher zugreifen, hier helfen Anwendungen wie DavDroid, CalDAV Sync oder CardDAV Sync. Mozilla Thunderbirds Kalender Lightning kommuniziert mit Caldav-Servern via Bordmitteln, Thunderbird selbst benötigt für den Carddav-Zugriff aber Plugins wie den Sogo Connector oder CardBook. Alle beschriebenen Clients drängen sich entweder bei nicht erfolgter Synchronisation nicht zu sehr in den Vordergrund oder bieten eine komfortable manuelle Synchronisation an. Je nach Client genügt es, die Adresse des Servers anzugeben, also beispielsweise http://12.34.56.78:5232/ oder den kompletten Pfad, wie er im Webfrontend angezeigt wird. Abtippen müssen Sie dabei nicht, rufen Sie einfach im Browser des Mobilgeräts das Webfrontend auf und kopieren Sie die URLs, welche Sie dann ins Serverfeld des Caldav-/Carddav-Clients einfügen.
Gemeinsame Kalender
Der typische Fall gemeinsamer Kalender bei Paaren und Familien sind Kalender, die von allen Beteiligten editiert werden können, hierfür ist es sinnvoll, einen zusätzlichen Benutzer anzulegen, der von allen Familienmitgliedern für den gemeinsamen Kalender genutzt wird. Anders mag es in Unternehmen aussehen, wo Mitarbeiter geschäftliche Kalender anderer Mitarbeiter einsehen können, aber nicht editieren sollen. Eine Lösung hierfür, die Softlinks verwendet, um Kalender für andere Nutzer verfügbar zu machen und schließlich eine weitere Kon gurationsdatei rights.txt mit Rechtede nitionen zu nutzen, zeigt das Wiki des Projektes: http://bit.ly/2vKWq5h.
Fazit
Mit der schnellen Einrichtung und der transparenten Kon guration ist Radicale ideal für den Hausgebrauch im lokalen Netzwerk geeignet. Größter Vorteil von Radicale ist dabei, dass er seinen eigenen Webserver mitbringt. Dennoch können Administratoren in Unternehmen von der kompakten Codegröße und der dadurch leichten Erweiterbarkeit pro tieren, beispielsweise mit selbst geschriebenen Authenti zierungs-Plugins. Wer jedoch Webdav auch zur Dateisynchronisation verwenden möchte und Wert auf ein umfangreiches Webfrontend zur Bearbeitung von Kalendern und Adressbüchern legt, sollte sich eher bei Nextcloud umsehen, wo allerdings die Installation auf einem Linux-System empfohlen ist, also mindestens ein Raspberry Pi laufen muss. Der wiederum muss gewartet werden und verursacht Kosten für Hardware und Strom. whs