Synchroniser ses contacts, calendriers, notes et dossiers sur Ubuntu Phone

Que diriez vous de regrouper au sein d’un unique contact les mails, adresses et téléphones d’une même personne, que cela soit sauvegardé pour résister aux vols et aux pannes, tout en vous permettant d’y accéder depuis n’importe quel terminal ?

La réponse à cette question est le protocole HTTP « WebDAV ». Avec lui vous pouvez synchroniser fichiers, contacts (CardDAV), calendriers et mémos (CalDAV) : en d’autres mots il est trivial de se substituer à Dropbox, Gmail et Evernote si vous souhaitez posséder vos données.

Chapitre 1 – Choisir votre logiciel et votre hébergement de serveur

Cet article ne peut pas traiter le sujet en totalité, cette partie est par ailleurs très largement renseignée sur le Net : ownCloud (en PHP) et Cozy Cloud (en NodeJS) sont deux logiciels libres renommés qui implémentent WebDAV en entier.

En vous baladant sur leurs sites, vous trouverez la complexité qui vous convient, allant de la création d’un compte au téléchargement du logiciel. Libre à vous de trouver un hébergement, de louer un serveur ou de monter une infra chez vous !

Chapitre 2 – Configurer votre Ubuntu Phone

Si vous n’avez pas encore d’Ubuntu Phone mais que vous êtes familier avec la ligne de commande d’Ubuntu pour ordinateur de bureau, j’ai une bonne nouvelle : il y a un terminal et tout ce que vous avez l’habitude de trouver dedans !

Les développeurs d’Ubuntu Touch ont eu l’excellente idée de faire reposer le carnet d’adresses et le calendrier sur un backend standard : SyncEvolution ! Bien que l’absence d’interface graphique pose une barrière, il est tout à fait possible de la contourner.

Étape 1 : Il faut avant tout obtenir un accès console. Deux possibilités. Si vous êtes sur Ubuntu pour ordinateur de bureau :

sudo apt-get install phablet-tools

Sur votre téléphone allez dans Paramètre système / À propos de ce téléphone / Mode développeur et activez-le pour la première connexion SSH. Le mot de passe que vous allez créer servira pour le compte phablet du téléphone. Puis toujours sur votre PC :

sudo phablet-shell

Sur votre téléphone allez dans Paramètre système / Wi-Fi / votre réseau. Appuyez dessus afin que l’IP s’affiche.

ssh phablet@ip-de-votre-telephone

Depuis le téléphone vous devrez, au choix, soit de créer un conteneur isolé soit de monter votre système complet en écriture :

sudo mount /dev/loop0 / -o remount,rw

Si vous n’avez pas du tout accès à un ordinateur sous Ubuntu, vous pouvez vous en sortir avec l’application Terminal du Magasin Ubuntu. Cela va être très long, mais sachez que l’icône orange permet de changer entre des palettes de raccourcis claviers !

Étape 2 : Si le fournisseur de services que vous avez choisi est protégé par un certificat auto-signé, téléchargez-le dans la mémoire de votre téléphone (par exemple dans le dossier Documents). Vous pouvez le trouver depuis la barre d’URL de votre navigateur. S’il porte l’extension .pem, veillez à le renommer en .crt. Gardez bien le câble connecté.

Dans la console du téléphone, procédez comme il suit pour activer votre certificat auto-signé :

sudo mv /home/phablet/Documents/votre-certificat.crt /usr/share/ca-certificates
sudo dpkg-reconfigure ca-certificates

Une interface interractive va se présenter à vous, il suffit de vous laisser guider et de cocher absolument toutes les cases. C’est fastidieux car il y en a une centaine (espace pour cocher, flèche du bas pour passer au suivant, tab pour aller sur le bouton « ok » et entrer pour valider). Tout a l’air de bien de passer jusque là non ?! 🙂

Étape 3 : Vous allez à présent remplacer uniquement ce que j’ai tapé en majuscules concernant votre site de synchronisation (l’exemple est donné pour ownCloud, facilement adaptable) :

syncevolution --configure --template webdav username=IDENTIFIANT password=MOT_DE_PASSE --keyring=no syncurl="URL_RACINE_DU_SITE" target-config@owncloud
syncevolution --configure --template SyncEvolution_Client sync=none syncURL=local://@owncloud username= password= peerIsClient=1 owncloud
syncevolution --configure database=https://URL_RACINE_DU_SITE/remote.php/carddav/addressbooks/IDENTIFIANT/CARNET backend=carddav target-config@owncloud contacts
syncevolution --configure sync=two-way backend=contacts database="Personnel" owncloud contacts

Le paramètre database de la dernière commande est traduit selon la langue du téléphone et il faut le deviner ! Persönlich en allemand, Personale en italien, etc. Il semble qu’on puisse aussi le laisser vide sans guillemets. Votre téléphone ne dispose que d’une seule base par défaut.

Vous aurez remarqué que la synchronisation est bidirectionnelle, je vous conseille de supprimer tous les contacts de votre téléphone à partir d’ici. L’heure de vérité a sonné :

syncevolution --sync slow owncloud contacts

Vous me devez à présent une bière blanche bien fraîche ! Jouons pour une pinte avec la synchronisation du calendrier :

syncevolution --configure database=https://URL_RACINE_DU_SITE/remote.php/caldav/calendars/IDENTIFIANT/CALENDRIER backend=caldav target-config@owncloud calendar
syncevolution --configure sync=two-way backend=events database="Personnel" owncloud calendar
syncevolution --sync slow owncloud calendar

Pour la synchronisation des notes / mémos / tâches / todo, cela passe habituellement par la même URL que le calendrier. Je n’ai rien trouvé sur le Net, en tout cas il ne semble pas y avoir d’application Note capable de lire ce qui est pourtant là !

Étape 4 : Automatiser ces deux commandes avec crontab requiert un petit trick, sans quoi rien ne se passe. Créez un script bash :

nano /home/phablet/syncevolution.sh

Ajoutez les lignes suivantes et refermez avec Ctrl+X suivi de Y et Entrer :

#!/bin/sh
export DISPLAY=:0.0 
export DBUS_SESSION_BUS_ADDRESS=$(ps -u phablet e | grep -Eo 'dbus-daemon.*address=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35)
syncevolution owncloud contacts
syncevolution owncloud calendar
exit 0

Rendez à présent ce fichier exécutable, puis ouvrez l’éditeur de tâches planifiées :

chmod +x /home/phablet/syncevolution.sh
sudo crontab -u phablet -e

Ajoutez la ligne suivante et refermez avec Ctrl+X suivi de Y et Entrer :

0 0,6,12,18 * * * sh /home/phablet/syncevolution.sh >/dev/null 2>&1

Vous pouvez modifier la fréquence bien que quatre fois par jour me semble suffisant. La fin de ligne envoie les logs dans le vide au lieu de les stocker et n’envoie pas de mail.

Étape 5 : Pour aller plus loin, il serait possible de synchroniser en WebDAV le répertoire /home/phablet/Pictures où les photos sont enregistrées, ou tout autre dossier de votre choix, avec le programme davfs2 :

sudo apt-get install davfs2

Je ne suis pas allé plus loin mais le tuto donné sur le lien davfs2 juste au dessus devrait vous être utile.

La parenthèse douloureuse qui a duré deux ans

J’avais acheté un Firefox OS Phone pensant que Mozilla ferait de la vie privée leur priorité (marketing), résultat :

  • Le protocole WebDAV, fonctionnalité la plus votée, n’est toujours pas envisagé.
  • Mozilla permet d’importer ses contacts depuis Google et Facebook uniquement. C’est délibéré.
  • Il n’y a à proprement parler aucune solution de contournement, à moins de tout redévelopper soit même en JS.

Chapitre 3 – Configurer votre client mail de bureau Thunderbird

L’intérêt venant du partage des contacts entre plusieurs terminaux, je vous invite à poursuivre vos recherches en fonction de ce que vous utilisez pour lire vos mails. Si vous utilisez un Webmail libre, il se peut qu’une option de synchronisation vous soit offerte, le protocole proposé sera avec une quasi-certitude WebDAV.

Il existe deux extensions pour le client lourd Thunderbird. D’abord Lightning, l’extension calendrier et todo par excellence :

LightningLightning2

Puis l’extension SOGo Connector qui nécessite Lightning et qui ajoute la possibilité d’importer des carnets de contacts CardDAV. Les contacts se présentent et s’utilisent ensuite comme d’habitude.

Une dernière astuce : ces extensions enregistrent le mot de passe demandé à la première connexion. Si vous avez plusieurs identifiants sur le même serveur (par exemple, un calendrier partagé et un perso), préférez des URL contenant les identifiants :

http://utilisateur:mot_de_passe@domaine.tld/...

Mes sources

Vus : 1916
Publié par Influence PC : 88