Aller au contenu

Synchronisation et stockage distant

Il est maintenant essentiel d'aborder la question du cloud et de la synchronisation, car c'est souvent là que se joue la fluidité du travail d'un chercheur ou d'un étudiant moderne. Pouvoir commencer une note sur son ordinateur de bureau et la consulter ou l'enrichir sur une tablette ou un smartphone est devenu une exigence.

Le premier avantage que vous pourriez trouver dans le stockage à distance, c'est celui de la sauvegarde automatisée, même si ce n'est pas tout à fait la fonction (voir plus loin dans ce chapitre). En effet, combien de vos collègues ont perdu des notes et des documents importants en raison d'une mauvaise manipulation ou de la faiblesse de leur système d'exploitation ?

Le travail dans le cloud offre un second avantage : la flexibilité des dispositifs grâce à la synchronisation. Que vous soyez au bureau, en bibliothèque ou en déplacement, vos notes vous suivent. Cependant, dans l'écosystème Markdown, tous les logiciels ne gèrent pas cette mobilité de la même manière.

Attention

Pour tout ce qui suit, faites attention à l'espace occupé par vos données. Il n'est peut-être pas nécessaire de synchroniser à la fois vos fichiers de travail et les cent documentaires que vous avez téléchargé en haute définition et qu'on peut éventuellement retrouver ailleurs sur Internet. Quant aux milliers de photos familiales qu'on ne regarde jamais, mais qu'on prend de manière compulsive avec un smartphone, il n'est pas nécessaire non plus de toutes les conserver… en somme, hiérarchisez vos besoins.

Un tour dans les nuages

Dans les chapitres précédent, j'ai mentionné à plusieurs reprises les services de stockages privateurs tels Dropbox, Microsoft One, Google Drive. Mais j'ai mentionné aussi plusieurs arguments pour les éviter.

Le service de votre université

Il y a de grandes chances que votre université propose déjà un service de stockage distant, assorti ou non d'un espace de travail collaboratif (type OnlyOffice). Les universités peuvent opter pour Nextcloud ou Seafile (en général), tous deux des systèmes open source. Peu importe le choix entre les deux, vous aurez toujours le même principe : un client à installer pour synchroniser vos fichiers. Vous pouvez donc, par exemple, travailler dans un dossier et synchroniser ce dossier pour le sauvegarder et retrouver vos affaires sur d'autres dispositifs, comme un autre ordinateur, votre tablette ou votre téléphone portable, équipés d'un logiciel de synchronisation eux aussi.

Là où cela ne va plus du tout, c'est lorsque votre établissement opte pour une solution basée sur Microsoft ou Google, accompagnant aussi ce choix de tout un écosystème logiciel qui vous contraint de les utiliser alors que ce n'est pas votre intention (et je ne parlerai pas davantage de la problématique que ce genre de choix pose en termes d'autonomie stratégique). Normalement, si vous vous contentez de synchroniser des fichiers, quel que soit le choix de votre établissement, vous pourrez toujours le faire sous Linux car les logiciels de synchronisation privateurs fonctionnent aussi. Néanmoins, nous nous éloignons de l'idée d'un système de confiance. Et le fait de vouloir absolument vous imposer les autres services rattachés, comme les outils collaboratifs de ces firmes, me semble constituer un empêchement manifeste de la liberté du chercheur et de la liberté individuelle de l'étudiant.

Le service de votre choix

Ce n'est pas parce que votre établissement propose du stockage en ligne que vous êtes obligé·e de l'utiliser pour votre propres besoins. Certes, c'est plus facile pour travailler en équipe, mais l'un n'empêche pas l'autre. Par ailleurs, si vous changez d'établissement, il faudra penser à rapatrier vos données. Et il est préférable de stocker des données personnelles ailleurs que sur votre lieu professionnel.

Pour ces raisons, je préconise donc de travailler avec votre propre espace personnel.

Toutefois, un service de stockage en ligne de confiance est souvent payant. En effet, la confiance repose sur un usage non déloyal de vos données et les modèles économiques comme Google et Microsoft reposent justement sur la commercialisation de vos données et les verrous numériques. Leurs offres payantes sont certes performantes, mais n'empêchent pas non plus l'espionnage. Il vous faut donc trouver une solution éthique tout en prenant en compte que le coût humain et matériel de l'infrastructure doit, à un moment ou un autre, être payé. Les associations ou petites entreprises qui proposent de l'hébergement Nextcloud font donc payer aux utilisateur·ices une partie de ces coûts. Cependant, cette dépense est rarement onéreuse. Prenez l'habitude, pour votre stockage distant ou votre courrier électronique, de payer un service dont vous pouvez évaluer le degré de confiance.

Note

Les solutions de stockage éthiques utilisent souvent un système nommé Nextcloud qui ne se limite pas au simple stockage et partage de fichiers : il intègre une suite complète d'outils incluant la gestion de calendriers, de contacts, une solution de visioconférence, de la bureautique collaborative, etc. Sa force réside dans sa flexibilité, puisqu'il peut être installé sur son propre serveur ou chez un hébergeur de confiance. Plus techniquement, Nextcloud utilise le protocole WebDAV pour la gestion et la synchronisation des fichiers, complété par les protocoles CalDAV et CardDAV pour les agendas et contacts. L'infrastructure est conçue avec une API (Interface de Programmation d'Application) robuste permettant tout un écosystème d'applications tierces d'interagir.

En premier lieu, il y a les organisations d'un collectif nommé CHATONS, le Collectif des Hébergeurs Alternatifs, Transparents, Neutres et Solidaires. Vous pouvez y trouver des organisations qui vous permettront de vous libérer entièrement des services des GAFAM. Je prendrai deux exemples de ces gentils Chatons : Zaclys et Sans-Nuage.

Avec un compte chez Zaclys ou Sans-Nuage, pour une somme modique (comprenant aussi l'adhésion car vous faites partie de l'asso !) vous pouvez obtenir l'essentiel à titre individuel, une boîte mail, de nombreux autres services utiles et un hébergement Nextcloud. Vous pouvez aussi avoir un pack pour tout un groupe d'utilisateurs, votre famille ou une communauté plus large.

Pour être complet, on peut ajouter à cela les offres de la part d'hébergeurs professionnels et qu'on peut qualifier de plus éthiques que les GAFAM. J'en citerai trois : Proton, Infomaniak et Mailo. Dans les trois cas, outre des adresses courriels et une suite de services, vous pouvez choisir des hébergements individuels gratuit ou collectifs payants présentant beaucoup d'avantages, y compris avec des noms de domaines. Mieux que des Chatons ? non : ces services commerciaux ne cherchent pas vraiment à créer un commun numérique dans lequel vous puissiez vous sentir chez vous, mais comparés aux big tech, ce sont les moins mauvais des choix compte-tenu des valeurs affichées.

Enfin, il y a deux autres solutions que je peux ici proposer. Avant d'aller plus loin, j'en explique les raisons.

Il se trouve que j'utilise Zotero à la fois pour gérer mes références bibliographiques, mais aussi pour stocker les fichiers de ces références. Il peut s'agir d'articles en PDF, mais aussi des documents d'archives plus imposants, sans oublier les notes. Si bien qu'à ce jour tout cela représente une bonne vingtaine de Go. Il y a certes l'offre payante de Zotero à 10$ par mois pour un stockage illimité. Mais j'ai préféré avoir mon espace Nextcloud à moi, parce que ma famille peut aussi en profiter et le choix de logiciel (services) est plus large que le seul hébergement Zotero.

Je suis donc allé chercher l'offre d'hébergement de l'entreprise Hertzner qui se nomme Storage Share. C'est une mutualisation de serveurs qui permet d'ouvrir et de louer des instances Nextcloud à la demande. Il y a trois tailles, à des prix différents : une petite instance (1 To), une moyenne (5 To), une grosse (10 To). J'ai écrit un billet de blog à ce sujet.

L'autre solution consiste à louer un serveur privé virtuel (VPS) et d'y installer un système (Linux) nommé Yunohost, qui comprend entre autre la possibilité d'installer Nextcloud. L'inconvénient est que ces VPS sont assez limités en taille, ce qui fait que pour le prix d'un petit VPS, il est plus rentable en temps, si ce n'est en argent, d'aller vers les CHATONS (dont certains proposent aussi des VPS). Par contre, louer un serveur dédié et y installer ce qu'on veut (y compris donc Nextcloud), c'est la liberté assurée (avec les responsabilités qui vont avec, notamment la maintenance).

Note

Avec un espace Nextcloud, il est possible de déporter le stockage de Zotero. Dans Paramètres > synchronisation, section « synchronisation des fichiers », choisissez de synchroniser les fichiers joints en utilisant WebDav. Entrez ensuite l'URL de synchronisation Webdav de votre hébergement Nextcloud (où qu'il se trouve) ainsi que vos informations de connexion. Dès lors, les fichiers que vous joignez à vos entrées Zotero seront synchronisées sur ce compte (dans un dossier Zotero), et donc aussi sur votre machine puisque vous synchronisez aussi depuis elle.

La stratégie du dossier partagé

La plupart des logiciels Markdown cités (Ghostwriter, Zettlr, Obsidian, Logseq, VSCodium) fonctionnent sur une logique simple : ils lisent des fichiers stockés dans un dossier sur votre disque dur. Et ce dossier peut lui-même être synchronisé.

  • Le principe : vous disposez d'un service de stockage distant basé sur Nextcloud et vous installez un client de synchronisation (comme le client Nextcloud) sur votre Linux Mint. Vous créez votre coffre (votre dossier de travail) à l'intérieur de ce dossier synchronisé (même principe pour les autres offre du marché Gdrive, Dropbox, etc.).
  • Le risque : la synchronisation par un tiers peut parfois créer des conflits de fichiers. Si vous modifiez la même note simultanément sur deux appareils, le service de cloud risque de créer deux versions différentes du fichier, ce qui peut être complexe à gérer pour des bases de données de connaissances. Donc restez prudent lorsque vous utilisez deux appareils simultanément. Hormis ce cas précis, il ne devrait pas y avoir de problème.

Joplin : la synchronisation intégrée

Joplin se distingue radicalement des autres par son module de synchronisation interne.

  • Au lieu de compter sur un dossier partagé, Joplin gère lui-même l'envoi des données vers le service de votre choix (Nextcloud, Dropbox, OneDrive, ou leur propre service payant Joplin Cloud).
  • L'avantage : c'est extrêmement stable et cela permet de chiffrer vos notes de bout en bout avant qu'elles ne quittent votre ordinateur. C'est la solution la plus simple pour ceux qui veulent une expérience clé en main sur mobile et bureau.

Logseq et Obsidian : des solutions maison

Ces deux outils sont basés sur des fichiers locaux, mais pour faciliter la vie des utilisateurs et financer leur développement, ils proposent des services de synchronisation dédiés :

  • Obsidian Sync : un service payant, très performant et sécurisé. Il évite les conflits de fichiers et permet de choisir précisément quels réglages ou plugins vous souhaitez synchroniser entre vos appareils.
  • Logseq Sync : également un service payant (actuellement en phase de consolidation pour les contributeurs). Il permet de synchroniser vos graphes de notes de manière transparente sans passer par des solutions tierces parfois capricieuses avec la structure de données de Logseq.

Synthèse

Logiciel Cloud Tiers (Nextcloud, etc.) Synchro Native Mobile
Joplin Oui (via module interne) Oui Excellente
Obsidian Oui (via dossier) Oui (Obsidian Sync - payant) Excellente
Logseq Oui (via dossier) Oui (Logseq Sync - payant) Très bonne
Zettlr Oui (via dossier) Non Non (Bureau uniquement)
Ghostwriter Oui (via dossier) Non Non (Bureau uniquement)

Un conseil

Pour votre travail, privilégiez un duo Linux + Nextcloud. C'est une solution 100% sous votre contrôle qui respecte la confidentialité de vos recherches tout en offrant une grande souplesse. Vous pouvez dores et déjà aller faire un tour chez un hébergeur associatif comme Zaclys ou Sans-nuage qui proposent de l'hébergement (voir plus haut).

Stockage distant

Pour conclure ce chapitre, il est essentiel de dissiper une confusion : la synchronisation n'est pas une sauvegarde. Vos fichiers synchronisés (via des services comme Dropbox, Google Drive ou un Nextcloud classique) sont des fichiers de travail. Si vous supprimez par erreur un document, la modification est répercutée instantanément sur tous vos appareils. Bien sûr, un bon hébergeur réalise lui aussi un archivage. Ainsi il est généralement possible de retrouver des fichiers à une date donnée. Mais à l'inverse d'une synchronisation, une sauvegarde est une duplication des données, isolée du support de travail, et destinée exclusivement à l'archivage et à la mise en sécurité.

Le disque dur externe

La méthode la plus courante consiste à utiliser un disque dur ou une clé USB. Bien qu'accessible, cette pratique présente deux failles :

  • L'aléa humain : puisque l'action est manuelle et perçue comme laborieuse, elle est souvent négligée.
  • La vulnérabilité des données : on oublie trop souvent de chiffrer ces supports. Une clé USB égarée dans un lieu public ou un disque volé transforme vos données personnelles en un livre ouvert pour n'importe qui.

Le RAID et le NAS

La solution de base consiste à automatiser la duplication en utilisant la technologie RAID (Redundant Array of Independent Disks). Le RAID utilise au moins deux disques pour créer une redondance. Cette technologie s'utilise dans un ordinateur (donc il vous faut un second ordinateur, peu pratique) ou dans un boîtier RAID, qui est un petit ordinateur spécialement fait pour cela. Pour un coût raisonnable, vous pouvez acheter séparément un boîtier RAID et des disques durs de qualité.

Toutefois, il existe des systèmes « tout faits » qu'on peut brancher en réseau, par exemple derrière votre Box, ce qui évite de le brancher et le débrancher sur votre ordinateur et surtout le rend toujours disponible. Pour mettre cela en place, il faut investir dans un NAS (Network Attached Storage). Le NAS permet d'automatiser les tâches liées à la redondance et à la copie, et il peut être accessible à la demande sur votre réseau domestique (certains NAS permettent aussi de connecter en dehors de votre réseau domestique, mais c'est vivement déconseillé pour des raisons de sécurité à moins de savoir exactement ce que vous faites).

Encore une autre solution consiste à rattacher un boitier RAID sur un mini-ordinateur, consommant peu d'énergie, par exemple un Raspberry Pi. Mais là il s'agit surtout d'y consacrer du temps pour apprendre.

L'exemple de Timeshift

Si votre ordinateur possède un second disque dur interne, vous pouvez utiliser des outils comme Timeshift (très répandu sous Linux).

  • Avantage : il crée des instantanés du système, permettant de restaurer votre environnement en quelques clics après une erreur de manipulation.
  • Inconvénient : si le disque de sauvegarde est physiquement dans le même ordinateur que l'original, un vol, un incendie ou une surtension électrique détruira les deux. Il est donc préférable de configurer Timeshift pour cibler un support externe.

Archivage

Pour une sécurité maximale, l'externalisation chez un professionnel est une option robuste, car ce professionnel réalise lui aussi un archivage. Vos données sont stockées dans des centres de données sécurisés, loin de vos locaux physiques. Bien que ce service soit souvent payant sous forme d'abonnement, il garantit la survie de vos données même en cas de catastrophe majeure dans votre domicile. Bien sûr cette sauvegarde doit être chiffrée.

Pour réaliser cela à bas prix, vous pourriez utiliser une solution dédiée au départ à la synchronisation, par exemple un second compte chez un fournisseur proposant un Nextcloud. En revanche, vous ne synchronisez pas vraiment : vous utilisez le protocole WebDav pour automatiser l'envoi régulier de données : par exemple vous réalisez une copie de votre dossier personnel dans un dossier et c'est ce dossier-là que vous « synchronisez » avec ce second compte. Une sorte de roue de secours si l'on veut.

Tâches Cron

Pour automatiser des opérations régulières sur vos fichiers, vous pouvez utiliser Cron et Crontab sous Linux. Avec une syntaxe assez simple, vous pouvez automatiser la copie de votre dossier de travail vers un lieu de stockage. Toutefois, le système le plus sûr en la matière est Borg Backup. Il s'utilise surtout en ligne de commande (avec Borgmatic), mais une interface rendant l'utilisation plus facile se nomme Vorta.

Git

L'utilisation de Git comme système de stockage pour une base de connaissances constituée de fichiers texte (comme tous vos fichiers Markdown) permet d'assurer la pérennité de vos travaux. Conçu initialement pour les développeurs afin de gérer des lignes de code de manière collaborative, Git s'adapte parfaitement aux chercheurs et étudiants en SHS. Contrairement aux services de synchronisation classiques (cités plus haut) qui se contentent de synchroniser la dernière version, Git enregistre l'historique complet de chaque modification. Pour vous, cela signifie la fin de la peur de perdre une page ou d'écraser par erreur un paragraphe crucial : chaque état passé du document reste accessible et restaurable.

Git s'utilise en ligne de commande mais il existe des interfaces graphiques comme Git Cola, et dans des logiciels comme VSCodium, vous avez des plugins spécialisés. Mais justement parce qu'il est manipulable avec des commandes dans le Terminal, son intégration dans un flux de travail peut être totalement automatisée. Il est possible de configurer des scripts simples qui, à intervalles réguliers ou lors de la fermeture de Zettlr, vont automatiquement indexer les modifications, créer un point de sauvegarde (commit) et pousser (push) les fichiers vers un serveur distant comme GitLab (dont Framasoft propose une instance gratuite sur Framagit). Cette automatisation permet de bénéficier de la puissance d'un outil industriel sans avoir à taper à chaque fois les commandes, garantissant que vos notes sont sauvegardées en temps réel sur un dépôt sécurisé.

Le véritable atout de Git réside dans le versioning. Chaque sauvegarde est accompagnée d'un message décrivant les changements effectués, créant ainsi une sorte de journal de bord de votre travail. C'est un outil qui demande toutefois un peu de rigueur.

Note

Vous pouvez apprendre les bases de Git en consultant ce livre traduit en français ou de multiples tutoriels sur Internet.

Première étape : initier un dépôt

Il convient tout d'abord de vous créer un compte sur une instance Git (comme Framagit, cité plus haut). Configurez aussi les clés de sécurité (SSH) qui vous permettront de vous connecter à votre compte de manière sécurisée. Cette page explique comment faire (et oui, c'est encore en ligne de commande).

Installez Git sur votre machine. Et aussitôt après, configurez les éléments de base :

git config --global user.name "Votre Prénom Nom"
git config --global user.email "votre@email.com"

Initiez ensuite un dépôt à partir de votre compte. Soit vous le faites directement avec les commandes Git, soit vous allez sur l'instance et vous « créez un nouveau dépôt » en vous laissant guider (plus facile pour commencer).

Si vous avez créé votre dépôt directement en ligne, vous allez le cloner localement sur votre machine. Avec votre Terminal, placez-vous dans le dossier /Documents et entrez la commande de cloning suivie de l'adresse de votre dépôt, soit quelque chose comme ceci (qui correspond à ce site web que vous êtes en train de consulter) :

git@framagit.org:Framatophe/libruniv.git

Vous voilà avec un dossier dont vous constaterez qu'il contient un sous-dossier .git, votre « journal » est là, il ne faut surtout pas l'effacer.

Méthode « bourrin »

À partir de là, si vous voulez aller au plus vite, c'est assez simple de réaliser cette routine :

  1. Avant de commencer à travailler, récupérez les dernières versions de vos fichiers : git pull
  2. Une fois que vous avez fini de travailler, ajoutez tout : git add --all.
  3. Annoncez quels fichiers vous avez modifié : git commit -m "mon travail du jour".
  4. Puis poussez l'ensemble : git push.

Méthode fine

Une fois que vous avez fini d'écrire vos fichiers Markdown, vous passez au terminal pour « figer » votre progression.

  1. Vérifier quels fichiers ont été modifiés : git status
  2. Préparer (stager) tous les fichiers modifiés : git add .
  3. Créer une version avec un message descriptif : git commit -m "Ajout de notes sur la sociologie urbaine et correction du chapitre 1"
  4. Envoyer le tout sur le serveur de sauvegarde, sur la branche principale : git push origin main.

Git devient un assistant pour vous grâce à ces commandes :

  • Pour voir l'historique : git log --oneline (affiche la liste de vos sessions d'écriture passées). Vous pouvez affiner avec git log --pretty=format:"%h - %an, %ar : %s".
  • Pour comparer : git diff nom_du_fichier.md (affiche exactement ce que vous avez ajouté ou supprimé en rouge et vert depuis le dernier commit). Notez que sur des textes longs il vaut mieux utiliser une interface graphique à Git.
  • Pour annuler une erreur : git checkout nom_du_fichier.md (annule vos modifications actuelles pour revenir à la dernière version sauvegardée).

Et on automatise tout cela :

Plutôt que de taper ces commandes à chaque fois, vous pouvez créer un fichier nommé messauvegardes.sh à la racine de votre dossier (souvenez-vous ce que nous avons dit à propos des scripts dans le chapitre sur le Terminal)

#!/bin/bash
# Script de sauvegarde automatique
git add .
git commit -m "Sauvegarde : $(date +'%Y-%m-%d %H:%M')"
git push origin main
echo "Notes sauvegardées et envoyées !"

Je vous laisse traduire dans votre langage courant ce que veulent dire ces commandes !

Il vous suffit alors de taper ./save.sh dans votre terminal pour que tout le processus se déroule automatiquement. Et vous allez pouvoir encore raffiner tout cela au fur et à mesure que vous saurez vous servir de Git.

N'oubliez pas :

Il est complètement inutile de « sauvegarder » sur votre dépôt Git des fichiers que vous produisez en version finale (par exemple des PDF). De même, il est inutile de créer des redondances avec des images (qu'il ne sert de sauvegarder qu'une fois). Pour ignorer les fichiers inutiles à envoyer, il vous faut un fichier .gitignore.

Dans votre dossier de travail, créez donc un fichier que vous appelez .gitignore. Dedans, vous écrivez quels fichiers vous ne voulez pas traiter. Par exemple :

# --- Exports ---
# On ne versionne pas les PDF
*.pdf

Par contre, pour les images, il faut dire à Git de ne pas les tracer. Cela se fait très bien avec Git LFS (Large File Storage).

Installez Git LFS : git lfs install

Puis configurez Git LFS, par exemple pour des fichiers .jpg :

git lfs track "*.jpg"
git add .gitattributes