
Contexte
J’avais installé NextCloud une première fois sur mon serveur et je l’utilisais avec ma famille, il y avait donc les images et vidéos de chaque utilisateur.
Un jour mon serveur a déconné et j’ai gagné du temps à carrément le réinstaller de A à Z.
Bref, j’ai donc réinstallé NextCloud (j’avais fait une backup, je ne suis pas fou :p).
Problème
Quand tu mets les dossiers (photos, vidéos etc…) dans le dossier files des utilisateurs sans passer par NextCloud (en utilisant du FTP par exemple), NextCloud ne le prend pas en compte et ne les affiche pas.
Sans parler du fait qu’il interdit d’avoir deux dossiers avec le même nom (logique) ça peut poser problème car bien qu’ils ne les voient pas, il sait qu’ils sont là.
Solution
Première étape, si tu avais un utilisateur « Bob » par exemple, tu le crées depuis le compte admin.
Ça va donc créer un dossier à son nom dans le répertoire qui contient les données de /data que tu as choisi lorsque tu as lancé le container.
Exemple :
- /ton/chemin/data:/data
Tu lui donnes maintenant les dossiers/fichiers qui lui appartiennent.
En effet, NextCloud ne les voit pas mais il sait qu’ils sont là, on a plus qu’à rafraîchir la base de données pour qu’ils soient visibles.
Trouver le chemin du fichier occ NextCloud
On va avoir besoin de savoir son emplacement plus tard. D’après la doc officielle : https://docs.nextcloud.com/server/latest/admin_manual/occ_command.html Il se trouve dans /var/www/nextcloud Mais personnellement il ne se trouvait pas là donc la commande suivante permet de le retrouver. Changez bien nom_de_ton_container_nextcloud par le nom de votre container.
docker exec -it nom_de_ton_container_nextcloud find / -name occ
Les erreurs « Permission denied » on s’en fiche, les URL apparaissent tout en bas.
Personnellement j’utilise /app/www/public/occ

Connexion au container Docker
Dans la commande, le -u 911 permet de se connecter en tant qu’utilisateur 911, c’est ce qui m’a été demandé dans les logs pour exécuter la commande occ.
Changez bien nom_de_ton_container_nextcloud par le nom de votre container.
docker exec -u 911 -it nom_de_ton_container_nextcloud /bin/bash
Rafraîchir la base de données NextCloud
NextCloud met à notre disposition le fichier occ pour ce genre de cas, il suffit de faire la commande suivante :
Bien évidemment, remplacez le chemin /app/www/public/occ par votre chemin à vous.
php /app/www/public/occ files:scan --all
Cette commande rafraîchit la base de données en fonction des fichiers présents pour chaque utilisateur.
