Ein einfacher CalDAV- und CardDAV Server

Erstellt am: 31/08/2025 - Lesezeit: 5 Minuten

Ein einfacher CalDAV- und CardDAV Dienst auf einem Raspberry Pi

NextCloud stellt bereits ein vielseitiges Werkzeug dar, um im eigenen Heim eine private Cloud zu betreiben. Allerdings ist diese Anleitung für diejenigen gedacht, denen das zu viel ist und die nur Termine und Kontakte auf allen Geräten synchronisieren können.

Ein unkomplizierter CardDAV- und CalDAV-Service für den Raspberry Pi. Also, hol dir einen Kaffee und lass uns loslegen.

Wer oder was ist Radicale

Ein eigener Kalender- und Kontaktserver, der auf den Protokollen CalDAV und CardDAV basiert und mit verschiedenen Geräten einfach synchronisiert werden kann, kann mit Radicale erstellt werden. Für Personen, die Datenschutz und einfache Bedienung schätzen, ist die Anwendung besonders geeignet, wenn sie ihre eigenen Daten selbst verwalten möchten und nicht bei großen Anbietern speichern wollen. Radicale richtet sich hauptsächlich an Einzelpersonen und kleine Gruppen, die nach einer einfachen und verlässlichen Lösung für die Verwaltung von Kalendern und Adressbüchern suchen.

Voraussetzungen

Oder: Was brauchen wir

Zunächst aktualisieren wir das System mittels sudo apt update && sudo apt upgrade -y

Dann können wir mit sudo apt install radicale -y auch schon den zukünftigen Dienst installieren.

Die Konfiguration

befindet sich nach der Installation von Radicale in /etc/radical/config

Doch vorher öffnen wir die /etc/default/radicale und tragen dort ENABLE_RADICALE=yes ein. Auch wenn in der Datei steht, man solle Radicale via update-rc.d radicale enable eingeben, wenn man das als Systemdienst haben will.

💡 Kleiner Hinweis: update-rc-.d Dienstname enable ist veraltet. Statt dessen verwendet man heute sudo systemctl enable Dienstname

Anschließend:

sudo systemctl enable radicale 
sudo systemctl start radicale

Diese öffnen wir mit sudo nano /etc/radical/config

Ich gebe hier jetzt nur die Punkte an, die wir ändern. In der config stehen noch mehr Punkte, aber die sind für die Grundkonfiguration unerheblich. Wer noch tiefer in die Materie einsteigen will: Es gibt genügend Dokumentationen im Netz.

[server] 
# Auf allen Schnittstellen und Port 5232 lauschen
# [::]:52532 nur wenn ihr IPv6 nutzt 
hosts = 0.0.0.0:5232, [::]:5232 

[auth] 
# Authentifizierung mit htpasswd-Datei und bcrypt-Hash 
type = htpasswd 
htpasswd_filename = /etc/radicale/users 
htpasswd_encryption = bcrypt 

[rights] 
# Rechteverwaltung über separate Datei 
type = from_file 
rights_file = /etc/radicale/rights`

[storage] 
# Speicherort der Kalender-/Kontaktdaten 
filesystem_folder = /var/lib/radicale/collections 

Jetzt müssen wir das oder die Passwörter für die Benutzer festlegen, die unseren Dienst nutzen sollen.

Dazu installieren wir noch apache2-utilsdamit wir die Passwörter generieren können. Anschließend erstellen wir das Passwort für den ersten Nutzer:

sudo apt install apache2-utils -y
sudo htpasswd -cB /etc/radicale/users DEINuserName

Sollen noch weitere Benutzer hinzugefügt werden, müssen wir das über

sudo htpasswed -B /etc/radicale/users BENUTZERNAMEmachen.

Der Grund dafür ist, beim ersten Nutzer erstellen wir die Passwort Datei (sudo htpasswed -cB [...] ), daher müssen wir die bei weiteren Benutzern nur noch ergänzen ( sudo htpasswd -B [...]).

Nachdem wir nun den oder die Benutzer angelegt haben, kümmern wir uns um den Speicherort. Dieser existiert bis jetzt nicht, daher müssen wir diesen anlegen und auch die Rechte anpassen.

sudo mkdir -p /var/lib/radicale/collections
sudo chown -R radicale:radicale

Ist das erledigt, starten wir den Radicale Service neu:

sudo systemctl restart radicale.service

Damit sollte nun alles laufen und wir können uns das ganze mit dem Browser mal anschauen. Dazu rufen wir im Browser das ganze über die IP Adresse des Raspberrys auf:

http://<pi-ip>:5232/

Aussehen sollte das ganze dann so:

Login Bereich des Radicale Webinterface

Als Login nehmt ihr dann euren Benutzernamen und das von euch vergebene Passwort.

Damit läuft der CalDAV- CardDAV Dienst auf eurem Raspberry Pi.


Da der Dienst nun läuft, wir auch ggf. schon einen Kalender erstellt oder gar eine .ics hochgeladen haben, wie verbinde ich nun mein Smartphone damit, so dass ich a) bereits bestehende Termine im Handy habe und b) neue Termine auch synchronisieren kann?

Weiter geht es mit: Wie synce ich das ganze

Zunächst laden wir uns aus dem F-Droid Store oder wenn es auch unbedingt Google mitbekommen soll, aus dem Google Playstore die CalDAV5x App runter.

Anschließend starten wir die App, klicken auf das Plus Symbol und erstellen so den Zugang zum Radical Server.

Als URL gebt Ihr ein:

http://<–IP-des-Raspberry–>/EuerBenutzername

In den beiden Feldern darunter noch mal euern Benutzername und das dazu gehörige Passwort. Damit sollte die Verbindung auch hergestellt werden.

Und was ist mit Mail Clients? Ach ja… Evolution hab ich ja auch noch…

Kurzfassung:

  • Evolution öffnen, neuen Kalender hinzufügen.
  • “Im Netzwerk” -> CalDAV auswählen
  • Radicale-URL (z. B. http://server:5232/user/calendar) eintragen.
  • Benutzername und Passwort eintragen.
  • Kalender auswählen und synchronisieren.

So kann der Radicale-Server als Kalenderquelle für Evolution genutzt und synchronisiert werden. Andere Mail Clients sollten ähnlich funktionieren.


Troubleshooting

Es gibt da noch ein paar Eigenheiten, die euch betreffen, wenn Ihr Starlink als Internetanbieter habt.

Starlink selbst stellt euch keine feste IP zur Verfügung, die man von außen erreichen kann. Starlink verwendet CGNAT, was im Prinzip nichts anderes ist, als dass Ihr euch mit anderen eine IP Adresse teilt. Beim Mobilfunknetz ist das genauso, auch da teilt Ihr euch mit anderen die IP Adresse. Eine Zuordnung der IP Adresse findet dann über den Port statt.

Damit man aber nun den Radicale Server von außen erreichbar hat, gibt es verschiedene Wege:

  1. Ihr kauft euch einen Router (das einfachste), oder
  2. Ihr sucht euch einen Anbieter über den ihr einen VPN Tunnel anlegen könnt, damit der Pi nach außen nur für euch erreichbar ist.
  3. Ihr Installiert auf dem Raspberry Pi noch einen Reverse Proxy

Ich hatte mich für die letzten beiden Möglichkeiten entschieden, und bin dabei bei tailscale und nginx gelandet.

Mit Tailscale (geht kostenlos) realisiere ich den Tunnel zum Raspberry Pi. Der Reverse Proxy (nginx) macht die weiterleitung von http auf https für die CalDAV App.

Wichtig dabei ist, dass alle Geräte (bei Tailscale gehen bis zu 7 Geräte wenn man den Free Plan nimmt) im gleichen Tailscale Netz sind. Sonst klappt die Verbindung nicht.

Wie man das allerdings einrichtet, erfahrt ihr beim nächsten mal.

Für alle anderen sollte die Verbindung auch ohne VPN und Reverse Proxy klappen.


Profilbild

Christian Rumpf

Ich bin aktiver Berufskraftfahrer in zweiter Generation mit langjähriger Erfahrung im Transportsektor. Auf diesem Blog teile ich meine persönliche Meinung und Erfahrungen.

 

Du hast Fragen, Anregungen oder Kritik? Schreib mir eine E-Mail: ue.golbsnaitsirhc@ofni