Bienvenue

NextCloud, MIUI et DAVdroid sous OVH

Je me décide à poster un billet pour décrire la solution enfin trouvée à mon problème de synchronisation.

Quelques éléments de contexte, j’avais un serveur CalDav (calendrier) et CardDav (Carnet d’adresses) partagé via Owncloud (9.1 de mémoire) dont les clients étaient : un téléphone android Xiaomi Redmi 3S sous MIUI, un smartphone android LG, une tablette Samsung Android, et un ordinateur sous OSX. Tout cela fonctionnait joyeusement… jusqu’à ce que je fasse la mise à jour de OwnCloud vers Nextcloud 10.

Bien sûr, je ne me suis pas aperçu tout de suite que ça ne fonctionnait plus, les agendas contenaient toujours leurs données inscrites antérieurement, et ça continuait de synchroniser avec OSX donc je n’ai pas fait le lien tout de suite.

Et un jour, le smartphone LG a planté, j’ai donc dû faire un hard reset et me rendre compte que je ne parvenais pas à rétablir la synchro.

Je la fais courte, mais j’ai fini par comprendre :

  • que NextCloud dans un sous-répertoire du domaine principal c’est pas toujours pratique, parce que le .htaccess du dossier parent outrepasse certaines directives…
  • que NextCloud et DAVdroid, c’est pas immédiat
  • que MIUI est contrariant

D’où les chapitres suivants :

Nexcloud en sous-domaine

Pour régler le premier problème, j’ai dû créer un sous-somaine, disons cumulus.domaine.com dans mon espace client OVH, qui pointe vers le sous-dossier /cumulus. Tout aurait pu bien se passer, mais la régénération de certificat a échoué. En fait je suis sur une offre perso OVH et je n’avais pas encore bénéficié de Letsencrypt everywhere (en gros, mon domaine principal avait reçu un certificat non valide pour les sous-domaines). Je recevais donc un « ssl_error_bad_cert_domain » à chaque ouverture du sous-domaine, et aléatoirement à chaque ouverture du domaine principal en plus… Après un appel au service client OVH, une régénération total des certificats Letsencrypt et 3h d’attente, c’était réglé.

NextCloud et DAVdroid

Là c’est assez simple, DAVdroid n’aime pas la façon dont sont échangés les cookies avec NextCloud, nous indiquons donc à NextCloud que DAVdroid est différent, et qu’il faut lui parler avec tous les égards qu’il mérite ! On édite donc /lib/base.php et on ajoute en-dessous de la ligne 517 :

'/^WebDAVFS/', la ligne :'/^DAVdroid/',

MIUI

J’aime mon Redmi 3S, j’aime MIUI, mais là, c’est le petit détail qui prend la tête !

L’idée, c’est, comme on peut le lire ici : https://davdroid.bitfire.at/faq/entry/miui-no-synchronization/ de permettre à DAVdroid de démarrer automatiquement, et tout était en ordre de ce côté-là depuis des jours… Mais le simple fait de désactiver le démarrage automatique pour DAVdroid et de le relancer a débloqué le problème ! (Aller sur « Sécurité », « Gestion du démarrage automatique », éteindre pour DAVdroid, retour, revenir à « Gestion du démarrage automatique » et rallumer pour DADdroid, ça marche !)

<< Retourner à la page précédente