CalDAV & CardDAV unter macOS 10.15 mit kdav

Ich wollte gerne die in macOS integrierte Kontakte, Kalender und Mail App verwenden. Kopano bringt aktuell keine Lösung out of the Box für CardDav. Es gibt aber ein Tool (kdav), welches noch nicht integriert wurde. Auf meinem UCS Server habe ich es wie folgt eingerichtet:

Kopano Version 8.7.1.0-0+9.1
UCS Version 4.4-6 errata780

Fehlende Pakete installieren

apt install git php-sqlite3 php-dom

kdav instalieren

  • Ordner erstellen
  • Software herunterladen
  • Composer installieren
  • Pakete aktualisieren
mkdir /usr/share/kdav
cd /usr/share/kdav
git clone https://github.com/Kopano-dev/kdav .
wget https://getcomposer.org/composer-stable.phar
mv composer-stable.phar composer.phar
chmod +x composer.phar
./composer.phar update

Für dei SQLite Datenbank und die Logs

mkdir /var/lib/kopano/kdav
chown www-data:www-data /var/lib/kopano/kdav
mkdir /var/log/kdav
chown www-data:www-data /var/log/kdav

Logrotate einrichten indem folgende Datei erstellt wird

nano /etc/logrotate.d/kdav

/var/log/kdav/*.log {
    size 1k
    create www-data www-data
    compress
    rotate 4
}

Webserver Konfiguration

nano /etc/apache2/conf-available/kdav.conf

# kdav
<IfModule mod_alias.c>
    Alias /kdav /usr/share/kdav/server.php
</IfModule>

<Directory /usr/share/kdav>
    DirectoryIndex server.php
    Options -Indexes -FollowSymLinks

    AllowOverride none
    <IfModule !mod_authz_core.c>
        Order allow,deny
        allow from all
    </IfModule>
    <IfModule mod_authz_core.c>
        Require all granted
    </IfModule>

    # Output buffering needs to be off, to prevent high memory usage
    php_flag output_buffering off

    # This is also to prevent high memory usage
    php_flag always_populate_raw_post_data off

    # SabreDAV is not compatible with mbstring function overloading
    php_flag mbstring.func_overload off

    # set higher limits by default
    php_value memory_limit 256M
    php_value max_execution_time 259200
</Directory>

Konfiguration übernehmen

a2enconf kdav
systemctl reload apache2

Nun ist kdav unter https://ucsserver/kdav erreichbar.

Unter MacOS dann in der entsprechenden App Account hinzufügen und CardDav bzw. CalDav wählen:

Accounttyp: Erweitert
Benutzername: meinbenutzer
Passwort: meingeheimnis
Serveradresse: ucsserver
Serverpfad: /kdav/principals/meinbenutzer
Port: 443
Haken bei SSL verwenden

Das Zertifikat muss gültig sein bzw. als vertrauenswürdig im Schlüsselbund hinterlegt sein.