Radicale – Kalender und Kontakte auf dem eigenen Server (Raspberry Pi) verwalten

Radicale Decker

Ich verwendete schon seit Jahren Baikal zum Speichern meiner Kalender-Einträge und Kontakte. Früher noch auf meinem Raspberry Pi mittlerweile auf meinem Heim-Server. Ich bin völlig zufrieden mit der Lösung und war daher traurig darüber, dass das Projekt nicht mehr weiter entwickelt wird http://sabre.io/blog/2017/development-on-hold/. Aktuell läuft noch alles perfekt, doch war ich dennoch auf der Suche nach einer Alternative und bin auch fündig geworden. Radicale ist ein in Python3 implementierter CalDAV- und CardDAV-Server, der mir die gleichen Vorzüge wie Baikal bietet und ist ebenso schlank implementiert, dass es auch ohne Probleme auf dem Raspberry Pi läuft.

Die Installation ist denkbar einfach. Ihr solltet zunächst python3 und pip installieren und anschließend radicale.

# install python3 and pip
sudo apt install python3 python3-pip -y
# install radicale
sudo python3 -m pip install --upgrade radicale

Nach diesen Schritten legt ihr eine Konfigurationsdatei an, mit der ihr festlegt, dass ihr den Server auch innerhalb eures Netzwerkes erreicht, da standardmäßig nur ein lokaler Zugriff gestattet wird.

sudo mkdir -p /etc/radicale
sudo nano /etc/radicale/config

Fügt folgende Zeilen ein und speichert mit Strg+X und Y und Enter.

[server]
hosts = 0.0.0.0:5232

Jetzt können wir radicale zum ersten Mal starten, wobei ihr über den storage-filesystem-folder angeben könnt, wo eure Daten gespeichert werden und damit auch welchen Ordner ihr im Anschluss von diesem Blog-Eintrag eurem Backup hinzufügen müsst.

python3 -m radicale --storage-filesystem-folder=/home/pi/radicale/collections

Jetzt könnt ihr unter http://localhost:5253, wenn ihr euch direkt auf dem Server befindet, oder aber auch http://raspberrypi:5253 aufrufen, wenn ihr euch in eurem Netzwerk befindet. Es zeigt sich jetzt eine Weboberfläche, die seit Version 2.1 in radicale integriert ist und mit der ihr ganz einfach neue Nutzer anlegen könnt und neue Kalender und Todo-Listen oder Adressbücher erstellt. Meldet euch dazu einfach mit eurem gewünschten Nutzernamen und Passwort an. Der Nutzer wird automatisch generiert. Am Besten ihr speichert direkt euer Passwort, weil ich noch keine Möglichkeit gesehen habe, das Passwort zurück zusetzen oder eine Datei zu finden, wo das Passwort im Klartext steht. Dann klickt ihr einfach auf Create new addressbook or calender, legt Title, Description, Type und Color fest und bestätigt mit Create euren Vorgang. Zur Belohnung bekommt ihr einen URL-Link, mit dem ihr jetzt Zugriff auf den Kalender und Todo-Liste oder Adressbuch erhalten könnt.

Die erhaltene URL könnt ihr beispielsweise in Thunderbird beim Erstellen eines neuen Kalenders angeben. Dazu beim Anlegen eines Kalender Im Netzwerk auswählen und dann CalDAV auswählen, sowie die URL in den vorgesehenen Bereich kopieren. Nach Weiter, Festlegung des Namens und der Farbe, Weiter und Fertigstellen könnt ihr dann den Kalender in Thunderbird verwenden, sobald ihr euren Benutzername und Passwort von radicale eingegeben habt. Für die Verwendung am Smartphone empfehle ich die DAVDroid-App. Dort könnt ihr auch, wenn ihr nur den Anfang eurer URL, in meinem Fall http://raspberrypi:5232/christian.decker, eintragt mehrere Adressbücher und Kalender laden.

Damit der Server automatisch gestartet wird, müssen wir jetzt noch ein Autostart-Skript erstellen. Dazu erstmal über Strg+C die Ausführung des aktuellen Skriptes beenden und anschließend erstellen wir die Datei radicale.service.

sudo nano /etc/systemd/system/radicale.service

Fügen folgenden Inhalt hinzu und speichern mit Strg+X und Y und Enter.

[Unit]
Description=A simple CalDAV (calendar) and CardDAV (contact) server

[Service]
ExecStart=/usr/bin/env python3 -m radicale --storage-filesystem-folder=/home/pi/radicale/collections
Restart=on-failure

[Install]
WantedBy=default.target

Jetzt können wir das Skript aktivieren, starten und direkt den Status überprüfen. Hier solltet ihr jetzt ein active (running) finden und ihr solltet

# enable service
sudo systemctl enable radicale.service
# start service
sudo systemctl start radicale.service 
# check status
sudo systemctl status radicale.service 

Nach einem Reboot (_sudo reboot) sollte radicale jetzt automatisch starten. Die Kommunikation zwischen eurem Smartphone oder Computer ist jedoch noch unverschlüsselt und ihr solltet entweder dafür sorgen, dass euer Server wirklich nicht von außen erreichbar ist oder ihn über einen Reverse Proxy mit nginx und einem Zertifikat absichern, wie hier beschrieben.

Ich hoffe, ich konnte euch einen guten Einblick in die Installation und Konfiguration von radicale bieten. Solltet ihr noch weitere Fragen haben, dann könnt ihr mich gerne kontaktieren.


Geschrieben von Christian Decker am 11.08.2017