(Dies ist die Fortsetzung von diesem Artikel)
Die Kommunikation testen
Nun wollen wir testen, ob der Sync auch Änderungen propagiert. Wir legen unter Android einen neuen Datensatz an. Beim Anlegen des neuen Kontakts werden wir gefragt, wo er gespeichert werden soll. Wir wählen das DAVx5-Adressbuch. Damit er in der Fritzbox erscheint, muss er eine Telefonnummer enthalten.
Nun sehen wir nach, ob unsere Daten in Outlook aktualisiert wurden. Wir öffnen Outlook und wählen den Kontakte-Ordner mit unseren Testdaten. Der Eintrag von dem Androidgerät ist vorhanden.
Wir legen hier nun ebenfalls einen neuen Datensatz an.
Nun sehen wir in dem Telefonbuch der Fritzbox nach. Da die Fritzbox nur einmal nachts gegen Mitternacht synct, lösen wir den Sync von Hand aus (oben auf das grüne Sync-Symbol klicken).
…dann sind die neuen Einträge da.
Jetzt erstellen wir auch hier einen neuen Eintrag:
Nun haben wir in allen 3 Geräten jeweils einen neuen Datensatz angelegt.
Klicken auf die grünen Sync-Pfeile.
Zu meinem Erstaunen musste ich feststellen, dass der in der Fritzbox angelegte Kontakt danach weg war. Laut AVM soll der Sync in beide Richtungen gehen (Link https://avm.de/service/wissens…-Online-Anbieters-nutzen/).
Ich habe ein wenig damit herumexperimentiert und muss sagen, dass ich mir am Schluss gar nicht sicher war, ob dieser neue Eintrag überhaupt richtig in der Fritzbox angelegt wird. Es ist mir ein paarmal passiert, dass mein Testeintrag auch ohne Sync verschwunden ist. Einfach nur indem ich zu ein paar anderen Seiten innerhalb der Fritzbox gewechselt bin (z.B. Online-Monitor). Mehr als einmal war danach der neu angelegte Kontakt aus dem Telefonbuch verschwunden.
Für den Moment höre ich an dieser Stelle auf. Der Weg von Outlook über den CardDAV-Server auf die Fritzbox funktioniert. Das war es, was ich haben wollte. Der Rückweg ist für mich Bonus. Vielleicht finde ich später mal heraus woran das momentane Verhalten liegt.
Der Vollständigkeit wechseln wir zurück zu unserem Androidgerät, öffnen DAVx5 und lösen auch hier den Sync von Hand aus. Jetzt öffnen wir die Kontakte-App. Der in Outlook angelegte Eintrag ist sichtbar.
Radicale als Dienst einrichten
Die Kommunikation zwischen den beteiligten Geräten funktioniert soweit (wenn man davon absieht, dass die Kommunikation zur Fritzbox eine Einbahnstraße ist).
Nun ist es an der Zeit, dass wir dafür sorgen, dass der Radicale-Server nicht jedes Mal von Hand gestartet werden muss. Dafür sind im Wesentlichen zwei Dinge nötig:
- wir brauchen ein Start/Stop-Script
- wir brauchen einen Eintrag in der Datei /etc/config/qpkg.cfg
Zuerst das Start/Stop-Script. Das ist ein Shell-Script, das mit dem Parameter „Start“ oder „Stop“ aufgerufen wird, und das je nachdem den Radicale-Server startet oder stoppt.
Den folgenden Inhalt speichert ihr unter dem Dateinamen „radicale.sh“ im Verzeichnis „/share/additional_services/radicale“.
#!/bin/sh
start()
{
/opt/bin/python3 -m radicale --config /share/additional_services/radicale/config &> /share/additional_services/radicale/radicale.log &
echo $! > /var/run/radicale.pid
}
stop()
{
kill $( cat /var/run/radicale.pid )
rm /var/run/radicale.pid
}
# you do not need to edit these lines
case "$1" in
start)
start
;;
stop)
stop
;;
esac
exit
Alles anzeigen
Für diese Datei müsst ihn nun noch die Execute-Bits setzen (chmod a+x radicale.sh).
Bitte beachtet, dass dies eine absolute Minimalversion ist. Es werden keine Einträge ins Systemlog geschrieben, es werden keinerlei Fehlercodes ausgewertet und das Logfile wird bei jedem Start überschrieben (um diese eh‘ schon lange Anleitung nicht gänzlich zu sprengen; vielleicht schaffe ich es ja ein deutlich ausführlicheres Script anzuhängen. Da sind dann alle oben genannten Dinge sowie die Nutzung des Watchdogs etc. inclusive.).
Mit diesem Start/Stop-Script kann man nun den Radicale-Server starten und wieder beenden. Und genau so einen Mechanismus brauchen wir um den Server vom Qnap-Betriebssystem automatisch beim Booten zu starten und beim Shutdown wieder zu beenden. Als Bonus bekommen wir noch ein Icon in der Web-GUI, mit dem wir den Radicale-Server auch manuell starten und stoppen können.
Apropos Icon, damit wir auch das Radicale-Logo sehen, brauchen wir diese drei Bilddateien, die ebenfalls im selben Verzeichnis landen wie die Start/Stop-Datei:
.qpkg_icon.gif, .qpkg_icon_80.gif, .qpkg_icon_gray.gif
(Sollten als Dateianhang zu diesem Artikel verfügbar sein)
Folgende Zeilen fügt ihr nun bitte der Datei „/etc/config/qpkg.conf“ hinzu:
[radicale]
Name = radicale
Display_Name = Radicale
QPKG_SUMMARY="Simple CardDAV and CalDAV server"
Version = 3
Shell = /share/additional_services/radicale/radicale.sh
Install_Path = /share/additional_services/radicale
Enable = TRUE
Class = null
QPKG_File = -
Author = Quacksalber
RC_Number = 180
Date = 2023-01-19
Status = complete
Alles anzeigen
Wichtig: Der Name hinter „Name = “ muss mit dem Namen des Verzeichnisses übereinstimmen (incl. Groß-/Kleinschreibung).
Danach erscheint im AppCenter des Qnap-NAS dieses Icon:
Nach Klick auf „Start“ startet der Server und das Icon sieht so aus:
Wenn der Server auf diese Weise aktiviert ist, wird er bei jedem Neustart des NAS ebenfalls gestartet.
Was noch fehlt
Wir wissen nun, dass alles geht und wie alles geht. Der Radicale-Server läuft und alle anderen Geräte können den Server kontaktieren – entweder direkt oder über Hilfssoftware. Wir können jetzt also die ganzen experimentellen Adressbücher und die Testdaten löschen. Dann richten wir den Sync des „echten“ Adressbuchs ein.
Was nun noch fehlt ist die Synchronisation der Kalenderdaten. Ich gehe davon aus, dass jeder der diese Anleitung bis hierher ver- und befolgt hat, diesen letzten Schritt auch noch hinbekommt.
Abschließende Bemerkungen
Der CardDAV-Server ist für mich nur ein Kommunikationskanal. Es gibt daher für mich keine Notwendigkeit diese Daten zu sichern. Mein „Master“ sind (und bleiben) die Daten in Outlook und diese Daten liegen bei mir im Backup. Wer aber trotzdem die Daten des Radicale-Servers sichern will, nimmt einfach die dafür eingerichtete Freigabe „additional_services“ in sein Backup mit auf.
Quellen
Documentation – Caldavsynchronizer
CalDAV and CardDAV with Radicale and DAVdroid on Android - a3nm's blog