Kontakte synchronisieren

Radicale ist ein in Python geschriebener Server für CardDAV und CalDAV. Er kommuniziert auf Kanalnummer 5232 und legt die Daten unter /var/lib/radicale ab.

Radicale installieren

apt install radicale python3-bcrypt python3-passlib apache2-utils

Server konfigurieren

Standardmäßig lauscht der Server nur lokal auf der Schnittstelle localhost:5232 ohne Authentifizierung. Da wir Kontakte über das Internet synchroniseren wollen, lassen wir den Server auf allen Schnittstellen lauschen und aktivieren sowohl Verschlüsselung als auch Authentifizierung.

/etc/radicale/config
[server] hosts = 0.0.0.0:5232 ssl = true key = /etc/radicale/key.pem certificate = /etc/radicale/cert.pem [auth] type = htpasswd htpasswd_filename = /etc/radicale/users htpasswd_encryption = bcrypt

Damit der Server immer über aktuelle Zertifikate verfügt, automatisieren wir deren Auslieferung durch ein Skript:

/etc/letsencrypt/renewal-hooks/deploy/radicale
#!/bin/sh basedomain="$(basename $RENEWED_LINEAGE)" if [ "$basedomain" = "Domain" ];then cp "$RENEWED_LINEAGE/fullchain.pem" "/etc/radicale/cert.pem" cp "$RENEWED_LINEAGE/privkey.pem" "/etc/radicale/key.pem" chown radicale:radicale "/etc/radicale/cert.pem" chown radicale:radicale "/etc/radicale/key.pem" systemctl reload radicale fi

Benutzer anlegen

Bevor wir den Server starten, legen wir ein Verzeichnis für die Daten und einen Benutzer an.

htpasswd -c -B /etc/radicale/users User
systemctl enable --now radicale

Der Server ist nun unter https://illusioni.de:5232 erreichbar und man kann dort neue Adressbücher anlegen oder vorhandene VCF-Dateien hochladen.

Clients anbinden

Im Thunderbird installieren wir das Plugin CardBook. Dort wählen wir im Menü:
Neues Adressbuch / Im Netzwerk / Typ: CardDAV.

Auf dem iPhone unter iOS öffnen wir die Einstellungen und wählen:
Kontakte / Accounts / Account hinzufügen / Andere / CardDAV-Account.

Formularfeld Eintrag
Server/URL: https://Domain:5232/User/Uuid
Benutzername: User
Passwort: Password

Literatur

  1. Debian Wiki: Radicale