Cette page est en cours de rédaction.
Apportez votre aide…

Vdirsyncer

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.

S'il n'existe pas, il faut créer le dossier (soit directement graphiquement à partir de votre dossier personnel soit en dans un terminal) ~/.vdirsyncer avant d'ouvrir le fichier.

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.

Section Général

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/"

Section Paire

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"]
Le terme « collection » est utiliser pour désigner les adresses et les calendriers. Chaque collection provenant d’un stockage a un « nom de collection », un identificateur unique pour chaque collection. Dans le cas de fichier locaux, c’est le nom du répertoire qui représente la collection, dans le cas des stockages DAV c’est le dernier segment de l’URL.

Section Stockage

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 :

Google

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 :

  1. Accédez à Google API Manager et créez un nouveau projet sous n’importe quel nom. Il faut cliquer sur la liste déroulante en haut à gauche à droite de "Google Cloud" Puis sur nouveau projet en haut à droite de la fenêtre qui s'ouvre
  2. Dans ce projet, activez les API « CalDAV » (pour les calendrier) et/ou « CardDAV » (pour les contacts). Il devrait y avoir une boîte de recherche où vous pouvez simplement entrer ces termes.
  3. Dans la barre latérale, sélectionnez « Identifiants » puis sur configurer l'écran d'autorisation. Vous pouvez choisir externe
  4. Créez un nouveau « OAuth Client ID ». Vous serez invité à créer d’abord un écran de consentement OAuth. Remplissez ce formulaire comme vous le souhaitez. En ajoutant dans les utilisateur autorisés votre compte Google. Enfin, vous devriez avoir un code de client et un secret de client. Fournissez-les dans votre config de stockage.

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.

Nextcloud

Exemple de configuration de stockage pour les calendriers Nextcloud :

[storage calendrier_nextcloud]
type = "caldav"
url = "URL_SERVEUR_NEXTCLOUD"
username = "UTILISATEUR"
password = "MOT_DE_PASSE"

Configuration avancée

Pour plus de détails, vous pouvez consulter la configuration avancée

Synchronisation Google et Nextcloud

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"]]
Si vous ne connaissez pas les identifiants de vos calendriers, vous pouvez mettre n'importe quoi pour les identifiants puis lancer
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

Automatisation

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.


1)
Basé sur « Documentation de vdirsyncer » par Markus Unterwaditzer & contributors.
  • vdirsyncer.txt
  • Dernière modification: Le 04/11/2022, 10:59
  • par AdeDidou