Skip to main content

23_Syncthing

Dernière vérification complète : 2026-08-11. Syncthing assure la synchronisation de fichiers entre le VPS Jux (hub), les postes Windows et Ubuntu, le téléphone et la tablette.

syncthingLe container sur le VPS

Imagesyncthing/syncthing:latest Versionv2.0.141.2 « Hafnium Hornet » (go1.26.5, build noupgrade) EtatContainersyncthing — Up 9 hoursrunning (healthy), démarré le 2026-07-31 ComposePolitique projectde redémarragesyncthingunless-stopped ReseauProjet composesyncthing_syncthing_net33 (l'ID de stack Portainer, pas syncthing) Réseau33_syncthing_net URLhttps://syncthing.juxjux.ovh Clé APIKWwkF5dD5CxeyGwFJ9ejFLHiohALysyF Device IDHKY4MM4-3ACZXNE-PVUUI6W-4MEYOR4-SYRXXHG-F4U6EPO-OWBDE62-ZBVHJQ3 Sourcehttps://github.com/syncthing/syncthing

Ports

HoteHôteContainerIPRôle 83848384/tcpinterface web / API REST 2200022000/tcp + udpprotocole de synchronisation (BEP) 2102721027/udp0.0.0.0découverte locale2102721027/udp::2200022000/tcp0.0.0.02200022000/tcp::2200022000/udp0.0.0.02200022000/udp::83848384/tcp0.0.0.083848384/tcp::

Volumes

Source (hote)hôte)DestinationTypeMode volume anonyme/var/syncthingvolumerw /home/debian/Documents/var/syncthing/Documentsbindrw /home/debian/Public/var/syncthing/Publicbindrw /home/debian/docker/syncthing/config/var/syncthing/configbindrw /home/debian/docker/syncthing/data1/var/syncthing/data1bindrw /home/debian/docker/syncthing/data2/var/syncthing/data2bindrw /home/debian/joplin-data/var/syncthing/joplin-databind

Plusieurs volumes sont montés mais un seul est réellement partagé (voir ci-dessous).


Le maillage

Un seul dossier partagé

IDrwafltj-njyuy LibelléTablette VPS Syncthing Chemin VPS/home/debian/Documents Chemin WindowsD:\Syncthing Typesendreceive Contenu1 284 fichiers, 495 dossiers, 1 061 Mo

Point d'attention fréquent : Jux_univers, komga-pdf, Jux_Obsidian, Ouvrages… ne sont pas des partages Syncthing distincts — ce sont des sous-dossiers de l'unique dossier afltj-njyuy. Il n'y a rien d'autre à configurer pour qu'ils se synchronisent.

Appareils (état au 2026-08-11)

NomDevice ID (début)ÉtatDernier contact syncthing-vpsHKY4MM4hub, toujours actif— PC-Julien 08/2026XLNMUWSconnecté2026-08-11 XIAOMI15ProITCNNE7connecté2026-08-11 Jux_UbuntuY3FSVEFhors ligne2026-08-08 PCNexteQF2XTKMhors ligne2026-08-07 SM-T720UUB72GLhors ligne2026-07-23 NAS SASNEXTESBLUVCWhors ligne depuis 6 mois2026-01-30

Le VPS sert de hub : deux appareils qui ne se voient jamais directement restent synchronisés en passant par lui.


IntegrationLe poste Windows « PC-Julien 08/2026 » (2026-08-10)

MachineDESKTOP-B7J2KGP, utilisateur julie Device IDXLNMUWS-P23BMTA-CJPC52K-VOS733O-YGBB2QF-GDA4EI6-YH7TZGP-FENRWA2 InterfaceSyncTrayzor 2.2.0, winget GermanCoding.SyncTrayzor — le fork maintenu Home SyncthingD:\SyncthingHome Interface webhttp://127.0.0.1:8384 — clé API PhAm5RvM9gJEzVEosHUWp9fPg2hKLhwr Démarrageclé HKCU:\…\CurrentVersion\Run, entrée SyncTrayzor -minimized

Trois pièges rencontrés

1. Ne pas prendre SyncTrayzor.SyncTrayzor (1.1.29). Ce paquet winget est le projet d'origine, abandonné depuis 2021 et antérieur à Syncthing 2.x. Le fork maintenu est GermanCoding.SyncTrayzor (2.2.0). Il embarque son propre syncthing.exe (v2.1.2) et le pilote.

2. Le home Syncthing ne doit pas être sous %LOCALAPPDATA% sur ce poste. Claude Code —s'exécute MCP

BesoinAppel
Statutdans MCPMCPun actif
Outilsconteneur (prefix)mcp__syncthing__
ConfigurationScript PythonMSIX : ce qu'il écrit dans %LOCALAPPDATA% atterrit en réalité dans …\Packages\Claude_pzs8sxrjxfjjc\LocalCache\Local\. Le profil créé depuis une session Claude était donc invisible pour SyncTrayzor, qui a démarré sur un profil vierge — le poste est resté déconnecté du maillage sans qu'aucun message ne le signale. Symptômes : API locale en 403, plus aucune ligne écrite dans syncthing.log, appareil vu hors ligne côté VPS. Correctif : profil déplacé dans D:\SyncthingHome et <SyncthingCustomHomePath> renseigné dans %APPDATA%\SyncTrayzor\config.xml.
Get-CimInstance Win32_Process -Filter "Name='syncthing.exe'" | Select-Object CommandLine
# doit afficher --home=D:\SyncthingHome

3. Ne jamais faire tourner deux instances sur le même home. Le binaire winget Syncthing.Syncthing avait d'abord été lancé par tâche planifiée ; il a fallu l'arrêter et supprimer la tâche avant d'installer SyncTrayzor, sous peine de verrouillage de la base.

Faire rejoindre le maillage à un poste dont la copie locale est périmée

Méthode à reproduire telle quelle. Un poste qui arrive avec des fichiers vieux de plusieurs jours peut, en sendreceive, ressusciter des fichiers supprimés ailleurs et générer des conflits en série sur toutes les machines.

    Sauvegarder hors de l'arbre synchronisé tout fichier modifié localement (voir plus bas). Ajouter le dossier en receiveonly : l'état du maillage fait autorité, les divergences locales sont retenues sans être poussées. Attendre needFiles = 0 — ici 229 fichiers / 547 Mo rapatriés. Basculer en sendreceive : PATCH /rest/config/folders/afltj-njyuy avec {"type":"sendreceive"}.

    Constaté lors de cette bascule : la synchronisation a écrasé CLAUDE.md par la version du maillage et déposé les modifications locales dans CLAUDE.sync-conflict-20260810-230652-I4M5WXU.md. Rien n'est perdu, mais il faut penser à rouvrir le fichier de conflit. Contrôle : GET /rest/db/localchanged?folder=afltj-njyuy.


    Identité perdue : « PC-Elio+Jux » (supprimé le 2026-08-11)

    Ce même poste Windows préexistait dans le maillage sous le nom PC-Elio+Jux (I4M5WXU-…), vu pour la dernière fois le 2026-08-07 à 22:16.

    Un device ID Syncthing est sa clé privée (cert.pem / key.pem, rangés dans le home sous le profil Windows). Le profil C:\Users\eliob ayant disparu, la clé a disparu avec lui : l'identité est irrécupérable, et l'appareil ne pouvait pas être « reconnecté » — seulement remplacé par un nouvel ID. Le disque D:, lui, a survécu intact mais figé au 2026-08-06.

    Leçon : sauvegarder cert.pem et key.pem hors du profil Windows si l'on tient à conserver l'identité d'un appareil au travers d'une réinstallation.

    L'entrée a été retirée du VPS (appareil + liste de partage du dossier) par PUT /rest/config, après sauvegarde de la configuration complète. Elle subsiste sur les autres appareils (Xiaomi, PCNexte, SM-T720, Jux_Ubuntu, NAS), où elle apparaît hors ligne : à retirer à la main sur chacun.


    Piloter Syncthing depuis Claude

    Il n'y a plus de MCP Syncthing. Le script mcp_syncthing.py ne vivait que dans C:\Users\eliob\.claude\mcp_syncthing.py, |hors Authpérimètre Syncthing — il a disparu avec le profil. Passer par l'API REST directe, qui couvre tout ce que faisait le MCP.

    Authentification : cléen-tête API dans header X-API-Key. Base VPS : https://syncthing.juxjux.ovh/rest. Base locale Windows : http://127.0.0.1:8384/rest.

    Configuration complète

    OutilsGET disponibles

    • /config
     — et pingPUT /configget_statusget_versionget_devicesget_device_statsget_foldersget_folder_statusget_folder_statsget_folder_errorsget_connectionsget_completionpause_deviceresume_devicescan_folder

    Ce que nous pouvons faire ensemble

    • Vérifier l'état de synchronisation de chaque dossier
    • Voirpour la progressionremplacer
    deAppareils syncconnectésGET entre/system/connections appareilsDernier (PCcontact ↔par VPS)DétecterappareilGET des/stats/device erreurs de synchronisationDéclencher un scanÉtat d'un dossierGET manuellementMettre/db/status?folder=afltj-njyuy Divergences localesGET /db/localchanged?folder=afltj-njyuy Appareils en pauseattente oud'acceptationGET reprendre/cluster/pending/devices laModifier syncun avecdossierPATCH /config/folders/{id} Identité de l'instanceGET /system/status → myID Lancer un scanPOST /db/scan?folder={id}

    Appairer un appareil sans toucher à l'interface : ajouter l'entrée dans devices et dans la liste devices du dossier, puis PUT /rest/config. C'est ainsi que « PC-Julien 08/2026 » a rejoint le maillage. L'appareil distant doit toutefois accepter le nouveau venu de son côté, sauf si un appareil introducer s'en charge.


    Points de vigilance

      Aucune alerte en cas de décrochage. Un appareil peut rester des jours hors du maillage sans que rien ne le signale — c'est ce qui s'est produit ici du 2026-08-07 au 2026-08-10. Le seul contrôle fiable est GET /stats/device sur le VPS. ConsulterNAS SASNEXTE n'a plus donné signe de vie depuis le 2026-01-30. À diagnostiquer. L'interface web du poste Windows n'a ni utilisateur ni mot de passe. Sans danger tant qu'elle n'écoute que sur 127.0.0.1 ; à corriger si le port venait à être exposé. UPnP saturé sur la Livebox (PinholeSpaceExhausted dans les statistiquesjournaux) de: transfertsans parconséquence, devicela connexion sortante TCP vers le VPS suffit. Ne pas confondre le nom du projet compose et celui du service : la stack s'appelle 33, pas syncthing. Pour un redéploiement : docker compose -p 33 -f /var/lib/docker/volumes/portainer_data/_data/compose/33/docker-compose.yml up -d.