Table des matières
Mon app Syncthing sur Android est morte. Plus de mises a jour. J'ai voulu migrer vers Syncthing Fork — et ca a ete un cauchemar. Jusqu'a ce que je branche un cable USB.
Pourquoi Syncthing (et pourquoi migrer)
Avant Syncthing, je synchronisais mes fichiers entre mon Mac et mon telephone via Google Drive. Ca marchait — jusqu'a ce que ca marche plus. Des conflits partout, des fichiers dupliques, des versions qui s'ecrasent. Le probleme de Google Drive, c'est que c'est un backup cloud : tes fichiers montent sur un serveur, et quand deux appareils modifient le meme fichier, c'est la loterie.
Syncthing, c'est different. C'est de la synchronisation point a point, open source, sans serveur intermediaire. Tes fichiers ne quittent jamais ton reseau. Et surtout, le protocole gere bien mieux les conflits — au lieu d'ecraser silencieusement, il cree un fichier .sync-conflict a cote de l'original. Tu choisis ce que tu gardes.
Dans ma config, j'ai rajoute un VPS comme relais permanent. Mon Mac et mon telephone ne sont pas toujours allumes en meme temps, donc le VPS sert de tampon — il est toujours en ligne, toujours a jour. Ca evite les incoherences quand les deux appareils se reconnectent apres plusieurs heures de decalage. Les fichiers sensibles comme ma base KeePass, eux, se synchronisent directement entre le Mac et le telephone, sans passer par le VPS.
Ca rend aussi le transfert de fichiers entre ordi et telephone beaucoup plus simple. Depuis le Mac, je drop un fichier dans un dossier, il apparait sur le telephone. L'inverse est un peu moins intuitif — sur Android, choisir dans quel dossier envoyer un fichier, c'est pas naturel. Mais dans le sens ordi → mobile, c'est imbattable.
Bref, Syncthing c'est mon systeme nerveux entre mes appareils. Sauf que l'app officielle sur Android n'est plus maintenue. Plus de mises a jour, support qui se degrade avec chaque nouvelle version d'Android. Le successeur, c'est Syncthing Fork — un fork communautaire qui utilise le meme moteur. Meme protocole, meme format de config. Migrer devrait etre simple : exporter d'un cote, importer de l'autre.
En theorie.
Le mur de l'import
Premier reflexe : j'ouvre Syncthing classique sur mon telephone, je fais "Exporter la config". OK, c'est fait. J'installe Syncthing Fork, je fais "Importer". Et la :
importConfig: ZIP file is missing. Please check if it is present at
'/storage/emulated/0/backups/syncthing/config.zip'L'app ne propose meme pas de selecteur de fichier. Elle cherche un zip a un emplacement precis sur le telephone. Sauf que Syncthing classique exporte ses fichiers en vrac — config.xml, cert.pem, key.pem — pas en zip.
Bon. Sur le telephone, je selectionne les fichiers, je les compresse en zip avec le gestionnaire de fichiers. Je relance l'import.
Meme erreur.
Je verifie le chemin, je deplace le zip au bon endroit. Toujours rien.
A ce stade, j'ai passe 45 minutes a jongler entre deux apps sur un ecran de 6 pouces, a naviguer dans des dossiers Android ou tout s'appelle /storage/emulated/0/quelquechose. Le genre de truc qui te fait regretter de pas avoir un iPhone.
Le probleme de fond, c'est que les deux apps n'ont pas le meme format d'import. Syncthing Fork attend un fichier sharedpreferences.dat dans le zip — un fichier specifique a Fork qui n'existe tout simplement pas dans Syncthing classique. Les formats sont incompatibles. Point.
Sur le telephone, j'etais dans une impasse.
C'est la que j'ai branche un cable USB.
ADB a la rescousse
ADB, c'est Android Debug Bridge — un outil en ligne de commande qui permet de piloter un telephone Android depuis un ordinateur. Sur Mac, ca s'installe en une commande :
brew install android-platform-toolsSur le telephone : il faut activer le debogage USB. C'est planque dans Parametres > Options pour les developpeurs > Debogage USB. Si tu ne vois pas le menu, va dans A propos du telephone et tape 7 fois sur "Numero de build". Oui, c'est un easter egg. Bienvenue dans Android.
Sur l'ordi : on branche le cable, on verifie que le telephone est detecte :
adb devicesLe telephone demande une autorisation — on accepte, et c'est parti.
Premiere chose : aller chercher les fichiers exportes par Syncthing classique. Ils sont bien la, sur le telephone, juste pas au bon format.
adb pull /storage/emulated/0/backups/syncthing/ /tmp/syncthing-export/Sur l'ordi : on cree le zip que Syncthing Fork attend :
cd /tmp/syncthing-export/syncthing
zip config.zip cert.pem config.xml https-cert.pem https-key.pem key.pemEt on le renvoie au bon endroit sur le telephone :
adb push config.zip /storage/emulated/0/backups/syncthing/config.zipSur le telephone : on relance l'import dans Syncthing Fork. Cette fois, le zip est lu. L'app affiche une erreur Missing file after extraction [sharedpreferences.dat] — le fameux fichier manquant. Sauf que la config est quand meme appliquee. Les dossiers apparaissent, les appareils sont la, le Device ID est preserve. L'erreur est non-bloquante.
Dernier point critique : ne pas desinstaller Syncthing classique tout de suite. Les deux apps partagent maintenant le meme Device ID (on a importe les memes certificats), donc il ne faut pas les faire tourner en parallele longtemps. Mais on verifie d'abord que Fork fonctionne, et seulement apres, on vire l'ancien.
Le plus satisfaisant dans tout ca ? Une fois ADB en place, on peut aussi forwarder le port du GUI web de Syncthing Fork vers l'ordi :
adb forward tcp:8385 tcp:8384Et la, on a acces a l'interface web de Syncthing Fork — et surtout a son API REST — directement depuis le terminal du Mac. Plus besoin de toucher au telephone.
Bonus : Claude Code pilote ta synchro
Avec ADB + le port forward, l'API REST de Syncthing Fork est accessible depuis le terminal du Mac. Ca veut dire que Claude Code peut interagir directement avec Syncthing sur ton telephone.
Concretement, dans la meme session ou on a galere avec la migration, Claude a :
- Verifie quels appareils etaient connectes (Mac, VPS — tout bon)
- Liste les 9 dossiers synchronises avec leurs chemins et leurs types
- Detecte 197 fichiers de conflit sur mon coffre Obsidian
- Nettoye les 197 conflits en une commande
Tout ca sans que je touche au telephone. Juste un cable USB et des commandes depuis le terminal.
Le truc, c'est que maintenant, a chaque session, je peux juste dire /syncthing status et Claude me fait un diagnostic complet : qui est connecte, quels dossiers sont a jour, s'il y a des conflits a traiter. Et si je veux ajouter un nouveau dossier de synchro, il peut le faire via l'API sans que j'ouvre l'app.
On est passe de "galerer 45 minutes sur un ecran de telephone" a "un cable USB et une phrase dans le terminal".
Syncthing Fork, c'est le meme Syncthing sous le capot. La migration devrait etre un bouton. Elle ne l'est pas. Mais avec ADB et 30 minutes, c'est fait — et tu recuperes au passage un acces distant a ton telephone que tu ne lacheras plus.
Commentaires