Migration Nextcloud vers Seafile
Voici une méthode pour migrer des données provenant de Nextcloud vers un service Seafile tout en gardant les utilisateurs existants.
Migrer les utilisateurs
Exporter les utilisateurs
Sur le serveur Nextcloud.
Si Nextcloud est dans un conteneur Docker : docker exec -it -u 33 nextcloud bash
Ce fichier contiendra la liste de tous les comptes avec leur email, groupe, etc.
Importer les utilisateurs
Maintenant se rendre dans Seafile et télécharger le fichier template d'import d'utilisateur.
Convertir le JSON en CSV tout en respectant les colonnes imposées par le fichier template d'import.
Migrer les données
Prérequis avoir rclone d'installé sur le serveur.
Montages WebDAV et import automatisé des fichiers
Ce montage permet de faire une migration "propre" via API HTTP sans casser les métadonnées Seafile.
-> Nextcloud expose un WebDAV (https://cloud.miraceti.net/remote.php/dav/files/<user>/)
-> Seafile expose aussi une API REST / WebDAV.
Il faut faire un rclone sync entre les deux, mais via leurs API, pas via le filesystem.
Configurer rclone
Mise en place des config rclone.
L'URL de Nextcloud peut être trouvé en se connectant à Nextcloud puis Paramêtre de fichiers->WebDAV.
Attention pour l'urlURL de seafile, il faudra renseigner le nom d'une bibliothèque pour que la connexion fonctionne.
# Crée la config pour Nextcloud
rclone config create nextcloud webdav \
url "https://cloud.miraceti.net/remote.php/dav/files/<username>/" \
vendor nextcloud \
user "<username>" \
pass "<mot_de_passe>"
# Crée la config pour Seafile
rclone config create seafile webdav \
url "https://drive.miraceti.net/seafdav/<library>" \
vendor other \
user "<username>" \
pass "<mot_de_passe>"
# Puis synchronisation
rclone sync nextcloud: seafile: --progress --create-empty-src-dirs
Pour tester la configuration seafile qui est la plus importante on peut utiliser la commande suivante :
> rclone lsd seafile:
-1 2025-10-09 15:52:00 -1 Documents
-1 2025-10-09 16:30:46 -1 Photos
...
La commande doit afficher les dossiers de la bibliothèque de l'utilisateur configuré.
Si la configuration est erroné, il toujours possible de la modifier : ~/.config/rclone/rclone.conf :
[nextcloud]
type = webdav
url = https://cloud.miraceti.net/remote.php/dav/files/john
vendor = nextcloud
user = john
pass = ***************
[seafile]
type = webdav
url = https://drive.miraceti.net/seafdav/Documents
vendor = other
user = john
pass = *********************
Migrer les fichiers
Pour migrer les fichiers suffit d’exécuter la commande suivante :
rclone sync nextcloud: seafile: --progress --create-empty-src-dirs