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.
Installation
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.
Configuration
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.
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"]
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 :
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 :
- 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
- Dans la barre latérale, sélectionnez « Identifiants » puis sur configurer l'écran d'autorisation. Vous pouvez choisir externe
- 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"]]
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.
Utilisation
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
Désinstallation
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.