Quelles alternatives à Nextcloud auto-héberger ?
Comparez les alternatives à Nextcloud selon votre besoin : synchronisation de fichiers, serveur plus léger, stockage objet ou SFTP, avec le coût de migration.
Quelles alternatives à Nextcloud valent la peine d’être auto-hébergées ?
Les alternatives à Nextcloud qui valent la peine d’être déployées sont celles qui suppriment les fonctions que vous n’utilisez jamais. Nextcloud fait office de serveur de fichiers, de calendrier, de carnet d’adresses, de suite bureautique et de plate-forme d’applications dans une seule application PHP. Vous payez donc le coût de toutes ces fonctions à chaque chargement de page. Choisissez donc un remplacement en identifiant la seule fonction dont vous avez encore besoin, puis vérifiez le coût de la migration des fichiers que vous possédez déjà.
Ce guide classe les options selon cette fonction : synchronisation uniquement, synchronisation avec un serveur plus rapide, stockage objet avec un client par-dessus, ou simple accès distant aux fichiers. Chaque section précise les besoins du serveur sur un petit VPS (virtual private server) et indique ce qu’il advient de votre arborescence existante. Si vous venez de Dropbox ou de Google Drive, et non d’une instance Nextcloud que vous utilisez déjà, le comparatif plus large des alternatives auto-hébergées à Dropbox part de ce point de vue.
Pourquoi Nextcloud devient lent sur un petit VPS
La lenteur a des causes identifiables. Les connaître permet de déterminer si partir résoudra réellement le problème.
Chaque chargement de page occupe un worker PHP. La configuration système requise de Nextcloud indique une mémoire par processus : 128 MB au minimum et 512 MB recommandés, en août 2026. Il ne s’agit pas de la mémoire totale du serveur. Un pool de dix workers représente un budget mémoire réel sur une offre de 2 GB. Les administrateurs réduisent donc pm.max_children dans la configuration du pool PHP-FPM, puis les requêtes attendent derrière les workers disponibles. L’interface paraît lente alors que le disque est inactif.
La base de données grossit selon le nombre de fichiers, pas selon leur taille. La table du cache des fichiers, oc_filecache avec le préfixe de table par défaut, contient une ligne pour chaque fichier et dossier de chaque stockage connu du serveur. Une photothèque de 300,000 petits fichiers produit une table volumineuse. 300 GB de fichiers vidéo répartis sur 400 fichiers produisent une table réduite. Le partage, la recherche et le scanner de fichiers lisent tous cette table.
sudo mysql nextcloud -e 'SELECT COUNT(*) FROM oc_filecache;'Un nombre d’entrées de l’ordre du million explique mieux une liste de fichiers lente que n’importe quel benchmark du disque. Si votre instance utilise un autre préfixe de table ou PostgreSQL, adaptez la requête.
Les tâches en arrière-plan sont en concurrence avec l’interface web. Le manuel de Nextcloud recommande une entrée system cron qui exécute cron.php toutes les cinq minutes. La génération des aperçus et le scan des fichiers s’exécutent alors sur le même CPU que celui qui traite votre navigateur.
Les mises à niveau majeures impliquent une migration de base de données. L’instance passe en mode maintenance et répond à chaque requête avec Nextcloud is in maintenance mode, please try again later jusqu’à la fin de la migration. Sur un petit VPS avec un oc_filecache volumineux, cette interruption est suffisamment longue pour être perceptible.
Décidez d’abord de ce que vous souhaitez conserver
- Synchroniser un dossier entre des machines que vous administrez, sans interface web : Syncthing.
- Synchroniser des fichiers pour plusieurs personnes, avec une interface web, des clients mobiles et des liens de partage : Seafile.
- Stocker beaucoup de données à faible coût et y accéder depuis des scripts et des outils de sauvegarde : un stockage objet associé à un client.
- Lire et écrire vos fichiers à distance sans installer de nouveau logiciel serveur : SFTP ou WebDAV.
- Modifier des documents à plusieurs dans un navigateur ou partager un calendrier entre plusieurs personnes : restez sur Nextcloud ou acceptez d’exécuter deux services.
Syncthing : synchronisation de fichiers sans application serveur
Syncthing conserve vos fichiers sous forme de fichiers ordinaires. Il n’utilise aucune base de données de contenu ni interface web pour servir vos documents. Chaque appareil qui rejoint un dossier en conserve une copie complète, et Syncthing maintient les copies identiques.
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 syncthingsudo systemctl enable --now syncthing@$USER
sudo ss -lntp | grep 8384Une ligne affichant 127.0.0.1:8384 signifie que l’interface web fonctionne et écoute uniquement sur localhost, ce qui est souhaitable sur un VPS public. Accédez-y avec un tunnel SSH : ssh -L 8384:127.0.0.1:8384 you@your-vps, puis ouvrez http://127.0.0.1:8384 sur votre ordinateur portable. L’absence de listener sur 8384 signifie que le service n’a pas démarré, et journalctl -u syncthing@$USER -n 50 en indique la cause.
Ressources. Syncthing ne publie aucune valeur minimale de mémoire. Sa consommation dépend du nombre de fichiers indexés, et non de leur taille totale, car il conserve une entrée d’index par fichier et par dossier partagé. Le premier scan d’un dossier volumineux sollicite le CPU : Syncthing calcule le hash de chaque fichier avant de pouvoir les comparer. Prévoyez que ce premier passage dure un certain temps sur un vCPU partagé, et que la mémoire augmente avec le nombre de fichiers plutôt qu’avec le nombre de gigaoctets.
Le disque représente le coût réel. Il n’y a pas de stockage côté serveur, car Syncthing n’est pas un serveur. Un dossier de 200 GB partagé entre un VPS et un ordinateur portable nécessite 200 GB sur les deux appareils. C’est l’inverse de Nextcloud, où le serveur conserve tout et où les clients choisissent les éléments à synchroniser. Utilisez des dossiers sélectifs et un dossier receive only sur le VPS si celui-ci doit servir de cible de sauvegarde plutôt que de pair.
La migration est la raison de le choisir. Indiquez à Syncthing l’arborescence de répertoires que vous utilisez déjà. Il n’y a ni import, ni upload ni conversion. Ajoutez le dossier sur le VPS, ajoutez-le sur l’ordinateur portable avec le même identifiant de dossier, puis laissez les deux côtés converger. Si le même fichier existe différemment des deux côtés lors du premier contact, Syncthing conserve les deux versions et renomme l’une d’elles en filename.sync-conflict-20260809-142530-ABCD123.txt. Il est normal de voir ces fichiers lors de la première synchronisation ; ce n’est pas une erreur.
Ce à quoi vous renoncez. Il n’y a ni comptes, ni liens de partage à envoyer à d’autres personnes, ni possibilité de parcourir vos fichiers depuis le navigateur d’un téléphone. L’application Android d’origine n’est plus maintenue par le projet lui-même, et un fork communautaire la maintient, ce qui est important si l’accès mobile est votre objectif. La comparaison directe entre Syncthing et Nextcloud détaille les différences fonctionnelles une par une.
Seafile : synchronisation rapide avec un serveur plus léger
Seafile répartit le travail entre deux composants. Une application web Python appelée Seahub affiche l’interface, tandis qu’un processus C distinct gère le trafic de synchronisation. Les transferts de fichiers ne passent pas par l’application web. C’est pourquoi un envoi volumineux reste rapide pendant qu’une autre personne utilise l’interface. La version 13.0 est sortie le 5 janvier 2026.
sudo mkdir -p /opt/seafile
cd /opt/seafile
sudo wget -O .env https://manual.seafile.com/13.0/repo/docker/ce/env
sudo wget https://manual.seafile.com/13.0/repo/docker/ce/seafile-server.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/seadoc.yml
sudo wget https://manual.seafile.com/13.0/repo/docker/caddy.ymlModifiez .env avant de commencer. Ce fichier définit SEAFILE_SERVER_HOSTNAME, INIT_SEAFILE_ADMIN_EMAIL, INIT_SEAFILE_ADMIN_PASSWORD, SEAFILE_MYSQL_DB_PASSWORD et JWT_PRIVATE_KEY, qui doivent être une chaîne aléatoire d’au moins 32 caractères. Il indique également à compose quels fichiers YAML téléchargés doit lire. Les quatre téléchargements forment ainsi une seule stack.
cd /opt/seafile
sudo docker compose up -d
sudo docker compose psChaque conteneur doit indiquer un état running. Un conteneur qui redémarre en boucle signale presque toujours une valeur absente de .env. sudo docker compose logs seafile indique laquelle.
Ressources. En août 2026, la documentation de Seafile demande au moins 2 GB de RAM et un CPU à 2 cœurs cadencé à plus de 2 GHz. Considérez cela comme le minimum pour toute la stack, car le déploiement Docker démarre également MariaDB, le reverse proxy Caddy et l’éditeur SeaDoc. Prévoyez 4 GB si plus d’une ou deux personnes utilisent le service, ou n’installez pas les conteneurs facultatifs.
Le point délicat de la migration concerne le format de stockage. Seafile ne conserve pas vos fichiers sous forme de fichiers. Il découpe chaque fichier en blocs dans /opt/seafile-data et enregistre l’arborescence dans sa base de données. Vous ne pouvez pas indiquer à Seafile un répertoire existant pour le faire apparaître comme une bibliothèque. La migration nécessite donc un téléversement complet de toutes vos données. Cette conception signifie également que vous ne pouvez pas récupérer les données avec cp. La récupération passe par le serveur, seaf-fsck pour les contrôles de cohérence, ou le montage en lecture seule seaf-fuse.
rclone dispose d’un backend Seafile natif. Il transforme ce téléversement en une seule commande reprenable, au lieu d’une longue session de glisser-déposer.
rclone config
rclone copy /srv/files seafile:MyLibrary --progressLa documentation de rclone indique que les versions 6.x à 9.x de Seafile ont été testées. Exécutez donc la commande sur un petit répertoire et vérifiez le résultat avant de lui faire traiter un téraoctet.
Les bibliothèques chiffrées sont la fonctionnalité recherchée par de nombreux utilisateurs. Le mot de passe est défini dans le client, et le serveur stocke des blocs qu’il ne peut pas lire. Il faut toutefois connaître une limite importante : l’aperçu d’un fichier d’une bibliothèque chiffrée dans le navigateur envoie le mot de passe au serveur pour la durée de la session. L’aperçu dans le navigateur et le stockage à connaissance nulle ne sont donc pas disponibles simultanément. Comparatif entre Seafile et Nextcloud présente les autres compromis entre les fonctionnalités.
Stockage objet avec un client de synchronisation
Si vous devez stocker beaucoup de données à faible coût et les rendre accessibles aux scripts, utilisez un object store compatible S3 et considérez la synchronisation comme un outil distinct. Vous bénéficiez de la durabilité, du versioning et d’un protocole que tous les outils de sauvegarde prennent déjà en charge. En revanche, vous n’obtenez ni comptes utilisateur au sens d’un file server, ni file manager que les utilisateurs apprécieront. Stockage objet auto-hébergé avec MinIO présente la configuration côté serveur.
rclone copy /srv/files s3remote:mybucket --progress
rclone check /srv/files s3remote:mybucketrclone check compare les deux côtés en fonction de la taille et du hash, puis indique le nombre de fichiers différents. Toute valeur différente de zéro signifie que la copie est incomplète. Exécutez donc copy à nouveau avant de supprimer la source. Deux points sont à prévoir : l’object storage n’a pas de répertoires, mais uniquement des préfixes de clés. Un dossier vide ne survit donc pas à la copie. Par ailleurs, augmenter --transfers en même temps que la taille des chunks S3 augmente la consommation mémoire de rclone. Laissez ces deux paramètres à leur valeur par défaut sur un VPS de 1 GB.
WebDAV simple ou SFTP lorsque vous avez seulement besoin d’accéder à des fichiers à distance
Le remplacement le moins coûteux consiste souvent à ne rien installer. Si votre VPS exécute OpenSSH, vous disposez déjà d’un serveur de fichiers. SFTP ne nécessite ni daemon supplémentaire, ni base de données, ni PHP, ni mise à niveau susceptible de provoquer une panne un dimanche.
sftp you@your-vps
rclone mount sftpremote: ~/vps --vfs-cache-mode writesPour les clients compatibles avec WebDAV, notamment la plupart des gestionnaires de fichiers sur téléphone, rclone peut exposer la même arborescence.
sudo apt install apache2-utils
sudo htpasswd -c /etc/rclone/htpasswd you
rclone serve webdav --addr 127.0.0.1:8080 --htpasswd /etc/rclone/htpasswd /srv/filesLiez-le à 127.0.0.1 et placez un reverse proxy avec TLS (transport layer security) devant. L’authentification basic de WebDAV envoie le mot de passe à chaque requête. Avec HTTP simple, le mot de passe est donc transmis plusieurs fois par minute. Le coût de migration est nul, car les fichiers ne sont jamais déplacés. En contrepartie, il n’y a ni synchronisation ni copie hors ligne : lorsque la connexion tombe, les fichiers ne sont plus disponibles sur le client jusqu’à son rétablissement.
Ce qui remplace les calendriers, les contacts et l’édition de documents
Quitter Nextcloud vous coûte quelque chose sur ce point, et il est important de préciser quoi. Les calendriers et les contacts utilisent CalDAV et CardDAV (synchronisation des calendriers et des contacts via HTTP), et Radicale est le petit remplacement adapté. Il stocke chaque collection sous forme de fichiers sur le disque et fonctionne avec quelques dizaines de mégaoctets.
sudo apt install radicale
sudo systemctl enable --now radicale
sudo ss -lntp | grep 5232Le paquet fournit /usr/lib/systemd/system/radicale.service et sa configuration par défaut dans /etc/radicale/config, en écoute sur localhost:5232. Radicale ne possède aucune interface pour modifier les événements. Vous devez donc configurer un client sur votre téléphone ou votre poste de travail, puis effectuer les modifications depuis celui-ci.
L’édition de documents dans un navigateur est plus difficile à remplacer. OnlyOffice Docs et Collabora Online sont tous deux des moteurs d’édition, et non des solutions de stockage. Chacun a besoin d’une application hôte qui conserve les fichiers et lui transmet les documents. Si vous retirez Nextcloud, vous avez besoin d’un autre hôte, par exemple Seafile avec son propre éditeur SeaDoc. La comparaison entre OnlyOffice et Collabora explique quel moteur utiliser une fois que vous avez choisi l’application qui l’hébergera.
Conservez Nextcloud si l’un des cas suivants s’applique
- Plusieurs personnes partagent un calendrier et un carnet d’adresses, avec les mêmes comptes que pour les fichiers.
- Vous modifiez des documents bureautiques dans le navigateur, dans le même fichier et en même temps qu’une autre personne.
- Vous avez besoin de liens de partage par fichier, avec des dates d’expiration et des mots de passe, ainsi que de permissions de groupe.
- Vos utilisateurs ne sont pas techniques et utilisent principalement les applications mobiles.
Pour ces usages, il n’existe pas de solution plus légère qui fournisse toutes ces fonctions. Il vaut mieux corriger l’installation que l’abandonner. La plupart des instances lentes utilisent un pool PHP-FPM par défaut, sans cache mémoire configuré. La page de vue d’ensemble de l’administration de Nextcloud signale généralement l’absence de ce cache. Réduire le nombre de fichiers suivis est plus efficace que toute autre modification isolée, car la table du cache des fichiers est celle qui augmente. Installer Nextcloud sur un VPS avec Docker, TLS et des sauvegardes configure Nextcloud de manière à éviter la plupart de ces problèmes.
Ce que coûte réellement chaque option de migration
- Syncthing : aucun import. Pointez-le vers l’arborescence déjà présente des deux côtés et laissez les deux copies converger.
- SFTP ou WebDAV sur la même arborescence : aucun import, car rien n’est déplacé.
- Stockage objet : une copie réseau complète, reprenable et scriptable. Les dossiers vides ne sont pas conservés.
- Seafile : un téléversement complet dans les bibliothèques, car le serveur conserve des blocs plutôt que des fichiers.
Quelle que soit l’option choisie, créez d’abord une copie cohérente des données de Nextcloud. Les fichiers utilisateur se trouvent sous le répertoire de données, au format standard, dans un dossier par utilisateur. rsync de cette arborescence constitue donc votre source. Activez le mode maintenance de l’instance avant la copie. Sinon, vous risquez de copier des fichiers en cours d’écriture.
sudo -u www-data php occ maintenance:mode --on
sudo rsync -a --info=progress2 /path/to/nextcloud/data/ /srv/files/
find /srv/files -type f | wc -lComparez ce nombre au même find sur la source. Un écart signifie généralement que les permissions ont empêché rsync de lire certains éléments. La commande affiche ces erreurs au fur et à mesure.
Cette copie comporte deux pièges. Les fichiers accessibles via la fonctionnalité de stockage externe de Nextcloud ne se trouvent pas du tout dans le répertoire de données. Ils résident sur le système distant indiqué à Nextcloud. De plus, si le chiffrement côté serveur a déjà été activé, les fichiers présents sur le disque sont chiffrés. occ encryption:decrypt-all doit donc s’exécuter avant la copie. Sinon, vous déplacerez un dossier contenant des données illisibles. Vérifiez ces deux points avant d’annuler quoi que ce soit.
FAQ
Existe-t-il une alternative à Nextcloud qui conserve ma structure de dossiers existante ?
Syncthing, ainsi que toute configuration SFTP ou WebDAV classique. Syncthing indexe le répertoire que vous lui indiquez et conserve les mêmes noms et la même arborescence sur chaque appareil. Il n’y a donc ni étape d’importation ni téléversement. Seafile et le stockage objet nécessitent tous deux un téléversement complet, car aucun des deux ne stocke vos données sous forme de fichiers ordinaires dans une arborescence classique. Seafile découpe les fichiers en blocs dans son répertoire de données, tandis que le stockage objet utilise des clés plutôt que des répertoires.
Seafile fonctionne-t-il sur un VPS de 2 GB ?
La documentation de Seafile demande au moins 2 GB de RAM et un CPU à 2 cœurs cadencé à plus de 2 GHz, en août 2026. Considérez cela comme un minimum sans marge, car le déploiement Docker exécute également MariaDB, Caddy et l’éditeur SeaDoc dans leurs propres conteneurs. Pour un seul utilisateur, c’est exploitable. Pour un foyer ou une petite équipe, passez à 4 GB, ou retirez le conteneur SeaDoc de la stack et renoncez à l’édition de documents dans le navigateur.
Pourquoi l’interface web de Nextcloud est-elle lente alors que les téléchargements restent rapides ?
Parce que les deux chemins n’effectuent pas le même travail. Un téléchargement diffuse des octets depuis le disque, tandis qu’un chargement de page exécute PHP, interroge la table du cache des fichiers et attend souvent qu’un worker PHP-FPM soit disponible. Comptez les lignes dans oc_filecache et vérifiez pm.max_children dans votre pool PHP-FPM avant d’accuser le stockage. Une table contenant des millions de lignes et un pool de cinq workers produisent exactement ce comportement.
Puis-je conserver Nextcloud pour les calendriers et déplacer uniquement les fichiers ?
Oui, et c’est souvent la solution la moins coûteuse. Synchronisez vos grands répertoires avec Syncthing ou Seafile, et laissez Nextcloud fonctionner pour CalDAV, CardDAV et l’édition de documents dans le navigateur. Comme la base de données de Nextcloud augmente avec le nombre de fichiers suivis, retirer les grandes arborescences permet de rendre l’interface à nouveau rapide. Supprimez-les depuis l’interface web ou avec occ, et non depuis le répertoire de données sur le disque. Sinon, la base de données conserve des lignes qui pointent vers des fichiers inexistants.