Le logiciel Vdirsyncer, sous licence 3-clause BSD (BSD-3-Clause), est un outil de ligne de commande pour la synchronisation de calendriers et de carnets d’adresses entre différents serveurs et le système de fichiers local1). Le cas d’utilisation le plus populaire est de synchroniser un serveur avec un dossier local et d’utiliser un ensemble d’autres programmes pour modifier les événements et les contacts locaux. Vdirsyncer peut ensuite synchroniser ces modifications sur le serveur.
Cependant, vdirsyncer ne se limite pas à la synchronisation entre les clients et les serveurs. Il peut également être utilisé pour synchroniser des calendriers et/ou des carnets d’adresses entre deux serveurs directement.
Il vise à être pour les calendriers et les contacts ce que OfflineIMAP est pour les courriels.
Pour installer ce logiciel, il suffit d'installer les paquets vdirsyncer.
Cependant au cas où la version de la distribution n'est pas assez à jour, il est possible de trouver des version plus rapidement mise à jour sur le serveur.
Ouvrez le fichier ~/.vdirsyncer/config en modification.
Le fichier ~/.vdirsyncer/config n'existant pas forcément cela peut ouvrir un fichier vierge. Vous pouvez, dans ce cas, partir de cet exemple de configuration
Le fichier de configuration doit commencer par une section générale. Ensuite, on peut définir une ou plusieurs paires à synchroniser et les stockages correspondants.
Le seul paramètre requis est status_path. Il permet de spécifier un dossier où vdirsyncer peut stocker des métadonnées sur chaque paire de stockage. Par default, nous avons :
status_path = "~/.vdirsyncer/status/"
Dans cette section, on va définir le nom de la paire, les noms des deux stockages utilisés et les collections à synchroniser et éventuellement le mode de résolution des conflits et les metadatas à synchroniser:
[pair nom_paire] a = "nom_stockage_a" b = "nom_stockage_b" collections = ["nom_config", "nom_a", "nom_b"] #conflict_resolution = null #metadata = ["color", "displayname"]
Dans cette section, on va définir les stockages utilisés. Un stockage fait référence à des données réelles sur un serveur distant ou sur le disque local.
Voici la syntaxe de base :
[storage nom_stockage] type = "TYPE"
Liste des stockages supportés et leur différents paramétrages :
Vdirsyncer prend en charge la synchronisation avec les calendriers Google avec quelques restrictions. La synchronisation avec les contacts Google est moins fiable, pensez à toujours sauvegarder vos données.
Il faut tout d'abord installer le paquet python3-pip.
Puis installer des dépendances supplémentaires :
pip install vdirsyncer[google]
Enfin, vous devez enregistrer vdirsyncer en tant qu’application vous-même pour obtenir client_id et client_secret afin de respecter les Conditions d’utilisation de Google :
Exemple de configuration de stockage pour les calendriers Google :
[storage calendrier_google] type = "google_calendar" token_file = "~/.vdirsyncer/google" client_id = "ID_CLIENT_SUR_API" client_secret = "CODE_SECRET_DU_CLIENT_SUR_API"
Lors du premier lancement de vdirsyncer, il faudra se connecter à Google puis copier dans le terminal le code d'autorisation qui s'affiche. Ensuite, la connexion est automatique.
Exemple de configuration de stockage pour les calendriers Nextcloud :
[storage calendrier_nextcloud] type = "caldav" url = "URL_SERVEUR_NEXTCLOUD" username = "UTILISATEUR" password = "MOT_DE_PASSE"
Pour plus de détails, vous pouvez consulter la configuration avancée
Exemple de configuration pour synchroniser deux calendriers entre Google et Nextcloud :
[pair google_nextcloud] a = "calendrier_google" b = "calendrier_nextcloud" collections = [["CALENDRIER_1","ID_CALENDRIER_1_GOOGLE","ID_CALENDRIER_1_NEXTCLOUD"], ["CALENDRIER_2","ID_CALENDRIER_2_GOOGLE","ID_CALENDRIER_2_NEXTCLOUD"]]
vdirsyncer discover
Vous verrez alors apparaître la liste des calendriers sur les serveurs sous ce format :
calendrier_google: - "ID_CALENDRIER_1_GOOGLE" ("NOM_CALENDRIER_1_GOOGLE") - "ID_CALENDRIER_2_GOOGLE" ("NOM_CALENDRIER_2_GOOGLE") calendrier_nextcloud: - "ID_CALENDRIER_1_NEXTCLOUD" ("NOM_CALENDRIER_1_NEXTCLOUD") - "ID_CALENDRIER_2_NEXTCLOUD" ("NOM_CALENDRIER_2_NEXTCLOUD")
Pensez à mettre non quand l'application vous demande si vous souhaitez créer les collections non trouvées.
Lancez la découverte des listes (de contacts ou de calendrier via le terminal avec la commande suivante :
vdirsyncer discover
Puis la synchronisation avec la commande suivante :
vdirsyncer sync
En utilisant systemd.timer, vdirsyncer peut s'exécuter à un intervalle régulier (par défaut toutes les 15 minutes). Pour activer la minuterie, lancez
systemctl --user enable vdirsyncer.timer
Pour voir les journaux des analyses précédentes, utilisez
journalctl --user -u vdirsyncer
Pour supprimer cette application, il suffit de supprimer son paquet. Selon la méthode choisie, la configuration globale de l'application est conservée ou supprimée. Les journaux du système, et les fichiers de préférence des utilisateurs dans leurs dossiers personnels sont toujours conservés.