Dernièrement je me suis aperçu que suite à une mise à jour, mon instance de nextcloud essayait de m’expliquer que la configuration de l’auto-découverte des ressources avec nextcloud n’était pas bien configurée.
Ce service de découverte s’appuie sur des redirections : le client qui ne connaît que le nom d’hôte du serveur nextcloud requête alors les url suivantes : https://nom_du_serveur/.well-known/caldav et https://nom_du_serveur/.well-known/carddav . Quand c’est correctement configuré, le serveur renvoie un 301 accompagné du bon chemin pour accéder aux ressources de l’utilisateur.
Nextcloud est livré en standard avec un fichier .htaccess contenant les directives nécessaires aux redirections, mais ça ne fonctionne que si nextcloud est à la racine du serveur web.
Si ce n’est pas le cas, il convient d’ajouter à la configuration du virtual host par défaut du serveur web les redirections nécessaires:
Redirect 301 /.well-known/carddav /nextcloud/remote.php/dav
Redirect 301 /.well-known/caldav /nextcloud/remote.php/dav
Redirect 301 /.well-known/webdav /nextcloud/remote.php/dav
Ici on voit que l’instance nextcloud concernée est installée dans un sous-dossier « nextcloud » de la racine du serveur.
Notons que cette solution n’en est qu’une parmi d’autres, et que la page d’aide de nextcloud propose de le faire en utilisant un fichier .htaccess à la racine du serveur web. La documentation de sabre/dav en propose d’autres encore.
Configurer un client thunderbird + lightning
Là où je trouve que c’est franchement stylé, c’est quand on en vient à configurer un client pour synchroniser les agendas et les carnets d’adresses, en utilisant l’adresse de découverte des services.
Voici un exemple avec thunderbird, lightning, et les excellentes extensions tbsync et provider for caldav & carddav :
Pour configurer un nouveau compte de synchronisation, on appelle le gestionnaire de comptes de tbsync en cliquant sur le bouton TbSync en bas à droite de la fenêtre de thunderbird.
On choisit la première option, « Discovery service », c’est pour ça qu’on a fait tout ça 🙂 .
La magie DOIT opérer quand on se contente de saisir le nom pleinement qualifié du serveur nextcloud; même pas besoin de mettre https:// .
Si ça ne fonctionne pas, et que ça retourne un 503, il est possible qu’il y ait un bug avec lightning. Dans ce cas, il faut aller modifier la manière dont lightning gère les cookies en passant à false le paramètre network.cookie.same-site.enabled, et redémarrer thunderbird.
o/