Syncthing ou Nextcloud sur un VPS : lequel choisir ?
Syncthing synchronise en pair à pair sans copie serveur. Nextcloud centralise comptes et liens. Comparez leurs contraintes sur VPS, sans confondre synchronisation et sauvegarde.
Syncthing ou Nextcloud : la différence qui détermine le choix
La différence entre Syncthing et Nextcloud tient à leur architecture, et tout le reste en découle. Syncthing fonctionne en pair à pair. Chaque appareil possède l’intégralité du dossier, et aucune copie n’est considérée comme la copie de référence. Nextcloud fonctionne comme un serveur. Une machine conserve les fichiers, les comptes utilisateurs contrôlent leur accès et les clients en téléchargent des copies.
C’est pourquoi Syncthing ne propose ni lien de partage ni interface web pour consulter vos documents. Il n’existe aucune copie centrale à fournir, donc un navigateur n’a rien à demander. Nextcloud propose ces deux fonctions, mais nécessite pour cela un runtime PHP, un serveur de base de données, un serveur web et un reverse proxy pour TLS (transport layer security).
Choisissez Syncthing lorsque tous les appareils concernés vous appartiennent. Choisissez Nextcloud lorsqu’un navigateur ou une autre personne doit accéder aux fichiers.
Ce que fait réellement le VPS dans chaque architecture
Un VPS qui héberge Nextcloud centralise vos données. Si vous supprimez la copie locale sur votre ordinateur portable, le fichier reste sur le serveur, car le serveur a toujours été la copie d’origine.
Un VPS qui exécute Syncthing joue un rôle différent : c’est un pair toujours disponible. Syncthing transfère les données directement entre deux appareils connectés en même temps. Deux ordinateurs portables qui ne sont jamais allumés simultanément ne peuvent donc jamais se synchroniser, quelle que soit la durée d’attente. Ajoutez un troisième pair sur un VPS qui ne s’éteint jamais et le problème disparaît. L’ordinateur portable A envoie les données à 09:00, l’ordinateur portable B les récupère à 22:00, et le VPS conserve le dossier entre-temps.
C’est un rôle réellement utile, avec une promesse plus limitée que celle d’un « remplacement de Dropbox ». Syncthing ne vous fournira jamais de lien à envoyer à un client. Si c’est ce dont vous avez besoin, arrêtez-vous ici et consultez plutôt le comparatif des alternatives auto-hébergées à Dropbox.
Ce que chacun coûte sur un petit VPS
Syncthing est un binaire Go unique. Il écoute sur un socket, conserve l’index de vos fichiers dans une base de données locale, et c’est toute la stack. Depuis la version 2.0, cet index utilise SQLite au lieu de LevelDB. Une installation 1.x est donc migrée une seule fois au premier lancement après la mise à niveau. Avec un grand nombre de dossiers, cette migration peut prendre beaucoup de temps. Laissez-la se terminer. Rien d’autre n’a besoin d’être installé ni corrigé.
Nextcloud nécessite davantage de composants. En août 2026, Nextcloud 35 prend en charge PHP 8.3 à 8.5 avec MariaDB ou PostgreSQL, derrière Apache 2.4 ou nginx avec php-fpm. Le manuel d’administration recommande « un minimum de 512MB de RAM par processus », et php-fpm exécute plusieurs processus workers simultanément.
Sur un VPS de 1 GB, Syncthing dispose de suffisamment de ressources et Nextcloud est à l’étroit. Cela ne signifie pas que Nextcloud est un mauvais choix. Cela signifie qu’il demande un engagement plus important, avec quatre composants à maintenir à jour au lieu d’un seul. La méthode avec conteneur présentée dans le guide Nextcloud sur un VPS consacré à Docker, TLS et aux sauvegardes est la moins contraignante pour gérer cette charge.
Installer Syncthing sur le VPS
Ubuntu fournit un paquet syncthing, mais il est très en retard sur la version amont. Utilisez le dépôt du projet.
sudo mkdir -p /etc/apt/keyrings
sudo curl -L -o /etc/apt/keyrings/syncthing-archive-keyring.gpg https://syncthing.net/release-key.gpg
echo "deb [signed-by=/etc/apt/keyrings/syncthing-archive-keyring.gpg] https://apt.syncthing.net/ syncthing stable-v2" | sudo tee /etc/apt/sources.list.d/syncthing.list
sudo apt-get update
sudo apt-get install syncthing
syncthing --versionsyncthing --version doit afficher une ligne qui commence par syncthing v2. La présence de v1 signifie qu’apt donne toujours la préférence au paquet de la distribution. Donnez la priorité au dépôt amont et réinstallez.
printf "Package: *\nPin: origin apt.syncthing.net\nPin-Priority: 990\n" | sudo tee /etc/apt/preferences.d/syncthing.prefExécutez-le comme service système avec un compte utilisateur ordinaire. Il démarrera ainsi au boot, même si personne n’est connecté.
sudo systemctl enable --now syncthing@youruser.service
systemctl status syncthing@youruser.servicesystemctl status doit afficher active (running). Les fichiers de configuration et d’index sont placés dans /home/youruser/.local/state/syncthing, et le fichier de configuration est config.xml. Les installations créées avant Syncthing 1.27 les conservaient à la place dans ~/.config/syncthing. Vérifiez donc les deux chemins avant de copier quoi que ce soit entre les machines.
Ouvrez ensuite les ports. Syncthing utilise le port 22000/TCP pour le protocole de synchronisation, 22000/UDP pour son transport QUIC et 21027/UDP pour la découverte locale. La découverte utilise le broadcast et le multicast, qui ne traversent pas Internet. Sur un VPS, vous avez donc seulement besoin des deux premiers ports.
sudo ufw allow 22000/tcp
sudo ufw allow 22000/udp
sudo ufw statusufw status doit lister les deux règles. S’il affiche Status: inactive, ufw ne filtre rien et le pare-feu réseau de votre fournisseur est le seul pare-feu actif. Vérifiez également ce panneau, car il s’agit d’un contrôle distinct chez la plupart des hébergeurs. Lorsqu’un appareil distant reste bloqué sur Disconnected alors que le service fonctionne, cela signifie généralement que l’un de ces deux pare-feu est encore fermé.
Accéder à l’interface GUI de Syncthing sans la publier
L’interface web (interface graphique) écoute par défaut sur 127.0.0.1:8384. Elle ne répond donc que depuis le serveur lui-même. Ce comportement par défaut est protecteur, car l’interface GUI contient une clé d’API (interface de programmation) qui peut réécrire tous les chemins de dossiers du serveur.
Ne l’ouvrez pas à Internet comme première étape. La documentation précise ce que permet l’écoute sur une adresse réseau : « spécifier l’adresse LAN de votre ordinateur ne limitera PAS l’accès aux seuls appareils de votre réseau local ! » Transférez plutôt le port via SSH depuis votre ordinateur portable.
ssh -L 8384:127.0.0.1:8384 youruser@your.vps.exampleOuvrez http://127.0.0.1:8384 dans le navigateur local pendant que cette session est active. Le tunnel se ferme avec la session SSH. Plus rien n’écoute ensuite.
Si l’interface GUI doit être directement accessible, définissez d’abord des identifiants. Le serveur ne dispose pas de navigateur. Effectuez donc cette opération depuis la ligne de commande.
sudo systemctl stop syncthing@youruser.service
sudo -H -u youruser syncthing generate --gui-user=admin --gui-password=-
sudo systemctl start syncthing@youruser.serviceLa valeur -H est importante, car sans elle sudo conserve le répertoire personnel de root et vous modifiez le mauvais config.xml. Un tiret seul comme valeur de mot de passe demande à syncthing generate de lire le mot de passe sur l’entrée standard. Il n’apparaît ainsi pas dans l’historique du shell, et sa valeur est hachée avant d’être écrite dans le fichier. Activez HTTPS dans les paramètres de l’interface GUI dès que vous pouvez vous connecter.
Pourquoi Syncthing propage vos erreurs
La FAQ de Syncthing répond elle-même à la question des sauvegardes : « Syncthing n’est pas une excellente application de sauvegarde, car toutes les modifications apportées à vos fichiers (modifications, suppressions, etc.) sont propagées vers tous vos appareils. »
Supprimez par erreur un dossier sur votre ordinateur portable et Syncthing fonctionne exactement comme prévu. Il supprime ce dossier partout, en quelques secondes. La synchronisation signifie que les appareils sont d’accord, y compris sur le fait qu’un fichier n’existe plus.
Le versioning des fichiers est la solution, mais il est désactivé par défaut. La documentation précise que le versioning « est défini par défaut sur “no file versioning”, c’est-à-dire qu’aucune ancienne copie des fichiers n’est conservée ». Quatre stratégies sont disponibles pour chaque dossier. Trash Can conserve une copie de chaque fichier supprimé ou remplacé à la suite d’une modification distante. Simple conserve un nombre défini d’anciennes versions par fichier. Staggered réduit progressivement l’historique avec le temps : des copies horaires pendant une journée, des copies quotidiennes pendant un mois, etc. External confie chaque décision à une commande que vous écrivez. Les anciennes copies sont placées dans un répertoire .stversions à l’intérieur du dossier partagé.
Définissez Staggered sur le peer VPS et laissez le versioning désactivé sur les ordinateurs portables. Le peer toujours actif conserve alors l’historique, tandis que les ordinateurs portables restent légers.
Nextcloud gère mieux ce cas, mais ce n’est toujours pas une sauvegarde. Les fichiers supprimés vont dans une corbeille et les modifications sont conservées par l’application Versions, mais ces deux mécanismes suppriment automatiquement les anciennes données à mesure que le disque se remplit. Un processus sur votre ordinateur portable qui chiffre les fichiers synchronisera ces versions chiffrées, et les bonnes copies finiront elles aussi par être supprimées selon leur propre calendrier.
Quel que soit l’outil utilisé, il faut une véritable sauvegarde en dessous : des snapshots créés par un programme distinct, écrits à un emplacement que le client de synchronisation ne peut pas atteindre, puis restaurés au moins une fois afin de vérifier que la restauration fonctionne. La comparaison entre restic et BorgBackup explique lequel utiliser pour le répertoire de données.
Différences entre les conflits des deux outils
Les deux outils créent un fichier en conflit lorsque les deux côtés modifient le même fichier entre deux synchronisations. La différence concerne l’utilisateur qui le voit.
Syncthing renomme la copie perdante en <filename>.sync-conflict-<date>-<time>-<modifiedBy>.<ext>. La copie dont la date de modification est la plus ancienne perd. Lorsque les dates sont identiques, le périphérique dont la valeur dans les 63 premiers bits de l’identifiant de périphérique est la plus grande perd. Ce choix est arbitraire, mais tous les peers obtiennent le même résultat. Vient ensuite le point auquel on ne s’attend pas toujours : ces fichiers « sont traités comme des fichiers normaux après leur création et sont donc propagés entre les périphériques ». Chaque peer reçoit la copie en conflit. Pour la supprimer, une seule suppression suffit : elle est synchronisée partout. Mais vous la verrez d’abord sur toutes vos machines.
Le client desktop Nextcloud écrit <name> (conflicted copy YYYY-MM-DD HHMMSS).<ext>, par exemple mydata (conflicted copy 2018-04-10 093612).txt, et, par défaut, il n’upload pas ce fichier. Le manuel du client explique ce choix : l’auteur de la modification est la personne la mieux placée pour résoudre le conflit, et afficher le conflit aux autres utilisateurs ne ferait que créer de la confusion. Définissez OWNCLOUD_UPLOAD_CONFLICT_FILES=1 dans l’environnement du client si vous voulez le comportement inverse.
Un conflit Syncthing est donc un événement à l’échelle du cluster, tandis qu’un conflit Nextcloud reste limité à un desktop.
Les types de dossiers rendent Syncthing plus sûr sur un serveur
Syncthing propose trois types de dossiers. Choisir le bon type sur le VPS évite toute une catégorie d’incidents.
- Send & Receive est le type par défaut. Les modifications sont propagées dans les deux directions.
- Send Only ignore tout ce que le cluster envoie. Utilisez-le lorsqu’un appareil doit uniquement publier des données. En cas de désynchronisation, l’interface graphique affiche un bouton rouge « Override Changes ». Il pousse l’état local vers tous les appareils.
- Receive Only applique les modifications du cluster et ne renvoie jamais les modifications locales. Utilisez-le sur un VPS qui sert d’archive. Les modifications locales y font apparaître un bouton rouge « Revert Local Changes ».
Un dossier Receive Only sur le VPS, avec le versionnage Staggered activé, fournit un miroir versionné. Une suppression effectuée sur un ordinateur portable est tout de même appliquée, car une suppression est une modification légitime du cluster. L’ancienne copie est toutefois placée dans .stversions au lieu de disparaître.
Lequel choisir
Les 7 lignes ci-dessous couvrent les raisons pour lesquelles cette question se pose réellement.
The data behind this chart
[
{
"label": "Keep two of my own laptops in sync",
"pick": "Syncthing",
"notes": "No accounts to manage. The VPS is the peer that is always awake."
},
{
"label": "Send a download link to a client",
"pick": "Nextcloud",
"notes": "Syncthing has no public link sharing at all."
},
{
"label": "Open a file from a borrowed browser",
"pick": "Nextcloud",
"notes": "The Syncthing GUI shows sync state, never file contents."
},
{
"label": "Sync 200 GB between machines I own",
"pick": "Syncthing",
"notes": "Peers transfer directly. The VPS copy is optional."
},
{
"label": "Phone photo upload with a store app",
"pick": "Nextcloud",
"notes": "The official Syncthing Android app ended in December 2024."
},
{
"label": "Calendar and contacts alongside files",
"pick": "Nextcloud",
"notes": "Syncthing syncs files. That is the entire feature set."
},
{
"label": "1 GB VPS with nothing else to spare",
"pick": "Syncthing",
"notes": "One Go binary against PHP plus a database plus a web server."
}
]Regardez la première ligne. Synchroniser les deux ordinateurs portables qui vous appartiennent correspond à Syncthing. C’est le cas où un VPS est utile comme pair qui ne dort jamais. Chaque ligne qui concerne un navigateur, un lien ou une autre personne pointe vers l’autre choix.
Si Nextcloud arrive systématiquement en tête mais que son empreinte vous préoccupe, la comparaison entre Seafile et Nextcloud est la prochaine lecture recommandée, car Seafile conserve le modèle serveur avec un moteur de synchronisation différent.
Les utiliser sur un même VPS
Ils ne s’excluent pas. Utiliser Syncthing pour transférer des fichiers entre vos propres machines, tout en laissant Nextcloud gérer le partage et les calendriers, est une configuration courante.
Une règle s’impose : ne pointez jamais Syncthing vers le répertoire de données de Nextcloud. Nextcloud suit chaque fichier dans sa base de données. Les fichiers qui apparaissent sur le disque sans passer par Nextcloud restent donc invisibles dans l’interface web jusqu’à ce que la base de données soit mise à jour. Depuis le répertoire d’installation de Nextcloud :
sudo -u www-data php occ files:scan --allCette commande affiche le nombre de fichiers et de répertoires analysés. L’exécuter selon une planification est un contournement, pas une bonne conception. Attribuez à chaque outil son propre répertoire. Si vous déterminez encore ce qui doit être hébergé sur ce serveur, le guide sur les services à auto-héberger en 2026 constitue un meilleur point de départ que le choix préalable d’un outil de synchronisation.
FAQ
Syncthing peut-il remplacer Dropbox ?
Uniquement pour synchroniser vos propres appareils. Syncthing ne fournit ni liens de partage publics ni comptes utilisateur, et son interface web n’affiche jamais le contenu des fichiers, car il n’existe aucune copie centrale qu’un navigateur pourrait demander. L’application Android officielle a été abandonnée après sa version de décembre 2024 et a disparu du Play Store. La prise en charge des téléphones dépend donc désormais d’un fork communautaire. Si vous devez envoyer un lien à quelqu’un, il vous faut un serveur, par exemple Nextcloud ou un outil similaire.
Syncthing est-il une solution de sauvegarde ?
Non, et le projet le précise directement. Les suppressions et les modifications sont propagées à tous les appareils. Une suppression accidentelle disparaît donc partout en quelques secondes. L’activation du versioning par dossier, en particulier Staggered sur un peer toujours disponible, fournit une fenêtre de récupération via le répertoire .stversions. Cette fonction ne remplace pas les snapshots créés par un outil distinct sur un stockage distinct.
Pourquoi mes fichiers n’apparaissent-ils pas dans la GUI web de Syncthing ?
Parce que la GUI est un panneau de contrôle de l’état de la synchronisation, pas un navigateur de fichiers. Elle affiche les dossiers, les appareils, la progression des transferts et le nombre de conflits. Elle ne liste ni n’ouvre jamais le contenu des fichiers. Cela découle de l’architecture peer-to-peer : vos fichiers restent sur vos appareils et la GUI du VPS gère uniquement le processus qui les déplace entre eux.
Quels ports Syncthing doit-il pouvoir utiliser sur un VPS ?
Le port 22000/TCP pour le protocole de synchronisation et le port 22000/UDP pour le transport QUIC. Le port 21027/UDP transporte la découverte locale par broadcast et multicast. Ces paquets ne traversent pas internet. Laissez donc ce port fermé sur un serveur public. Laissez la GUI sur le port 8384, liée à 127.0.0.1, et accédez-y via un tunnel SSH. Vérifiez également le firewall réseau de votre fournisseur ainsi que ufw, car il s’agit de deux contrôles distincts.
Puis-je exécuter Syncthing et Nextcloud sur le même VPS ?
Oui. Cette configuration est raisonnable sur une machine disposant d’au moins 2 GB de RAM. Séparez leurs répertoires. Nextcloud indexe les fichiers dans sa base de données. Tout fichier écrit par Syncthing dans le stockage de Nextcloud reste donc invisible dans l’interface web jusqu’à l’exécution de occ files:scan. De plus, deux outils qui écrivent dans un même répertoire produisent des fichiers de conflit qu’aucun des deux ne prévoit.