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.
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.
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.
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-utils
damit 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 BENUTZERNAME
machen.
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:
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?
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:
So kann der Radicale-Server als Kalenderquelle für Evolution genutzt und synchronisiert werden. Andere Mail Clients sollten ähnlich funktionieren.
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:
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.