Une photothèque s’ouvre vite après le premier passage, mais reste lente dès qu’un nouveau dossier arrive ? En 2026, Nextcloud Preview Generator permet de préparer les aperçus avant leur consultation. L’application déplace une partie du calcul vers les tâches d’arrière-plan et échange ainsi davantage d’espace disque contre une ouverture plus rapide des vues de fichiers ou de photos.
Ce tutoriel explique quand l’installer, comment lancer une génération initiale ciblée, traiter la file des nouveaux fichiers et limiter la charge. Il complète le guide général de Nextcloud sans remplacer le réglage des formats, du stockage ou du cron.
À quoi sert Nextcloud Preview Generator ?
Nextcloud sait déjà créer un aperçu lorsqu’une application le demande. Preview Generator ne supprime pas ce mécanisme à la demande. Il prépare en avance plusieurs tailles de miniatures afin qu’elles existent au moment où Files, Photos, Activity ou une autre application compatible veut les afficher. Si un aperçu manque encore, Nextcloud tente toujours de le produire lors de la consultation.
Le projet présente surtout l’application comme une réponse aux petites instances dont le matériel génère trop lentement les miniatures à la demande. Le bénéfice dépend donc du cas réel. Une bibliothèque composée de PDF rarement ouverts ne justifie pas forcément la même pré-génération qu’une chronologie de plusieurs milliers de photos parcourue chaque jour.
Cette accélération a un coût : chaque taille produite occupe de la place dans les données d’application de l’instance. Générer toutes les variantes pour tous les fichiers peut aussi solliciter fortement le processeur, la mémoire, le stockage et les fournisseurs externes comme ImageMagick, LibreOffice ou ffmpeg. L’objectif n’est pas de remplir un cache au maximum, mais de préparer les formats réellement demandés.
| Situation | Décision raisonnable |
|---|---|
| Aperçus rapides et peu de médias | Garder la génération à la demande et mesurer avant d’ajouter l’application |
| Photos lentes au premier affichage | Tester Preview Generator sur un utilisateur ou un dossier |
| Bibliothèque Memories régulièrement consultée | Préparer les tailles utiles à la chronologie |
| Stockage presque plein | Réduire les variantes et mesurer l’espace avant une génération globale |
| CPU ou mémoire déjà saturés | Corriger la capacité et limiter la concurrence avant tout traitement massif |
Le guide Nextcloud Memories traite l’indexation de la photothèque, les métadonnées et la vidéo. Preview Generator répond à une autre question : quand et comment produire les images intermédiaires affichées par l’interface.
Quels prérequis vérifier avant l’installation ?
Le 22 octobre 2026, le tag stable v5.15.0 du dépôt officiel déclare une compatibilité avec Nextcloud 33 à 35 et PHP 8.2 à 8.5. Cette plage évolue avec les versions. Vérifiez donc la fiche de l’App Store Nextcloud et les dépendances du tag réellement installé avant chaque mise à niveau.
Le dépôt du projet signale aussi une incompatibilité connue lorsque le chiffrement est activé. La formulation ne doit pas être interprétée comme une règle générale sur tous les usages de chiffrement de Nextcloud. Identifiez le mécanisme exact présent sur votre instance, reproduisez le parcours sur une copie et n’activez pas l’application sur des données de production tant que cette combinaison n’est pas validée.
Preview Generator dépend des fournisseurs d’aperçus disponibles dans Nextcloud. Les images et les documents texte sont pris en charge par défaut. La documentation indique que les aperçus PDF, SVG, bureautiques ou vidéo sont désactivés par défaut pour des raisons de sécurité et de performance, même si les fournisseurs existent encore. Certains demandent aussi ffmpeg, LibreOffice ou des modules ImageMagick compilés avec le bon délégué.
N’activez pas tous les fournisseurs pour obtenir plus de miniatures
Chaque format supplémentaire ajoute du code, des dépendances et une charge de traitement. Activez uniquement les types nécessaires, après vérification des binaires, des politiques ImageMagick et des fichiers réellement utilisés.
Le dernier prérequis est le mode Cron de Nextcloud. Le traitement automatique de la file Preview Generator exige ce mode. AJAX et Webcron ne sont pas pris en charge par l’application pour cette tâche longue. Le tutoriel sur les tâches d’arrière-plan Nextcloud explique comment faire exécuter cron.php toutes les cinq minutes sous le compte du serveur web.

Comment lancer la première génération sans saturer le serveur ?
Après l’installation et l’activation, la commande principale parcourt les fichiers et tente de générer leurs aperçus. Sur une installation classique, exécutez occ avec l’utilisateur HTTP et adaptez le chemin à votre serveur :
sudo -u www-data php /var/www/nextcloud/occ preview:generate-all
Ne commencez pas nécessairement par toute l’instance. La commande accepte un ou plusieurs identifiants d’utilisateur. Elle permet aussi de cibler un chemin avec la forme /utilisateur/files/dossier. Lorsqu’un chemin est fourni, les identifiants placés à la fin de la commande sont ignorés. Un premier test sur une copie de photothèque donne une mesure plus utile qu’un lancement global sans estimation.
sudo -u www-data php /var/www/nextcloud/occ \
preview:generate-all --path="/alice/files/Photos/Pilote" -vv
L’option --workers lance plusieurs traitements parallèles. Elle peut accélérer l’opération, mais elle augmente aussi la concurrence sur PHP, le processeur, la mémoire et le stockage. Commencez avec un seul processus. Mesurez la charge, le débit, les erreurs et la croissance de l’espace occupé avant d’ajouter des workers par petites étapes.
Préparez une fiche de recette avec le nombre de fichiers du dossier, son volume, les formats présents, la durée, l’espace libre avant et après, ainsi que le pic de mémoire et de processeur. Ouvrez ensuite la même vue depuis un compte pilote. Le succès de la commande ne prouve pas que chaque format dispose d’un fournisseur fonctionnel ni que l’interface demande les tailles produites.
Pour écarter une arborescence, le projet prévoit un fichier vide nommé .nomedia. Le dossier qui le contient et ses sous-dossiers sont alors ignorés par Preview Generator. Cette exclusion convient aux exports temporaires, caches importés ou ressources qui ne doivent pas apparaître dans une galerie. Elle ne supprime pas les fichiers et ne modifie pas leurs droits.
Testez d’abord un dossier représentatif
Choisissez des JPEG, PNG, HEIC, PDF et vidéos comparables à la bibliothèque réelle. Un dossier composé de dix petites images ne révèle ni une dépendance manquante, ni la mémoire nécessaire pour les grands médias.
Comment traiter les nouveaux fichiers avec cron ?
Une fois l’application activée, elle écoute les écritures et modifications de fichiers, puis ajoute les éléments concernés à sa file. Le job d’arrière-plan produit ensuite leurs aperçus. Par défaut, ce traitement est limité à cinq minutes par exécution afin de ne pas immobiliser indéfiniment le processus PHP. Cette limite peut être ajustée dans la configuration de l’application.
Avec le mode Cron correctement configuré dans Nextcloud, le job intégré peut traiter la file sans ajouter une seconde crontab dédiée. La commande suivante affiche ses statistiques et aide à voir si les éléments en attente deviennent anciens :
sudo -u www-data php /var/www/nextcloud/occ preview:queue-stats
Si la file vieillit plus vite qu’elle n’est traitée, observez d’abord sa croissance pendant une période normale. Vous pouvez ensuite ajuster la durée maximale ou le nombre d’aperçus exécutés par passage. Une valeur 0 signifie illimité pour les paramètres concernés, mais le dépôt déconseille de retirer toute limite sans encadrement.
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator job_max_execution_time \
--type=integer --value=300
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator job_max_previews \
--type=integer --value=200
Les valeurs ci-dessus illustrent la syntaxe, pas un dimensionnement universel. Si les deux limites sont définies, la plus restrictive arrête le passage. Choisissez-les selon la fréquence des imports, la fenêtre de faible activité et la capacité de l’instance, puis vérifiez que l’âge de la file diminue sans ralentir les utilisateurs.
Il reste possible de planifier directement preview:pre-generate avec le système. Dans ce cas, le projet recommande de désactiver le job intégré pour éviter deux mécanismes concurrents. Ne copiez pas une fréquence arbitraire : exécutez une fois la commande, mesurez sa durée, puis choisissez un intervalle qui ne superpose pas plusieurs passages.
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator job_disabled \
--type=boolean --value=true
sudo -u www-data php /var/www/nextcloud/occ preview:pre-generate
Comment limiter l’espace disque, la mémoire et le processeur ?
Preview Generator distingue plusieurs familles de tailles : carrés recadrés, images ajustées selon le bord le plus long ou le plus court, largeurs fixes et hauteurs fixes. Le projet précise que les tailles acceptées sont des puissances de quatre, à partir de 64, et qu’elles restent limitées par preview_max_x et preview_max_y dans config.php.
Pour une configuration minimale couvrant les besoins annoncés de Files, Photos et Activity, le dépôt propose ces valeurs :
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator squareSizes --value="64 256"
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator fillWidthHeightSizes --value="256 4096"
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator widthSizes --value=""
sudo -u www-data php /var/www/nextcloud/occ \
config:app:set previewgenerator heightSizes --value=""
Une chaîne vide désactive cette famille de tailles. L’absence du réglage rétablit les valeurs internes de l’application, ce qui n’est pas équivalent. Pour Memories, le projet propose aussi une taille 256 dans coverWidthHeightSizes afin de préparer la vue chronologique. N’ajoutez cette variante que si l’application et son usage la demandent.
Côté Nextcloud, preview_concurrency_new limite le nombre de nouveaux aperçus produits simultanément. La documentation recommande de ne pas dépasser le nombre de cœurs CPU. preview_concurrency_all couvre l’ensemble des requêtes d’aperçu et doit rester supérieur à la valeur précédente. Ces limites protègent aussi la génération à la demande, pas seulement Preview Generator.
La mémoire ne dépend pas simplement du poids du fichier compressé. Une grande image JPEG peut nécessiter beaucoup plus d’espace une fois décodée. Nextcloud applique preview_max_memory pour la génération avec GD et peut afficher l’icône du type de fichier si l’estimation dépasse la limite. Augmenter cette valeur ou memory_limit sans mesure peut déplacer le problème vers une saturation générale.
Surveillez au minimum l’espace des données d’application, le temps CPU, la mémoire PHP, les entrées anciennes de la file et le délai d’ouverture d’une vue pilote. Pour les autres traitements photo, le guide de Nextcloud Recognize explique pourquoi la reconnaissance d’objets et de visages doit être dimensionnée séparément des miniatures.
Pourquoi un aperçu reste-t-il absent ou ancien ?
Commencez par un fichier précis. Notez son chemin, son type MIME, sa taille, l’application qui l’affiche et l’heure du dernier changement. Lancez ensuite une génération ciblée avec -vv, puis consultez les journaux au même moment. Une icône générique peut être normale si le fournisseur du format est désactivé, absent ou incapable de décoder le fichier.
Vérifiez ensuite la chaîne complète : application Preview Generator activée, mode Cron actif, dernière exécution récente, file non bloquée, fournisseur autorisé, binaire externe présent et mémoire suffisante. Pour HEIC, AVIF, TIFF ou d’autres formats gérés par ImageMagick, la simple présence de l’extension PHP Imagick ne garantit pas que la bibliothèque possède le délégué requis.
Si les dimensions ou les fournisseurs ont changé, les anciens aperçus peuvent ne plus correspondre à la configuration. Depuis Nextcloud 31, la documentation et le projet renvoient vers la commande suivante pour supprimer les aperçus générés devenus obsolètes :
sudo -u www-data php /var/www/nextcloud/occ preview:cleanup
Cette opération prépare une régénération. Elle peut provoquer une forte activité ultérieure et une lenteur temporaire si les vues redemandent les miniatures avant leur pré-génération. Sauvegardez la configuration, relevez l’espace et testez la procédure sur un périmètre contrôlé avant de la lancer sur une grande instance.
Évitez les anciennes recettes qui suppriment manuellement tout le dossier appdata_*/preview. Le dépôt ne présente cette méthode que pour Nextcloud 30 et versions antérieures, avec un avertissement explicite sur son absence de prise en charge. Sur une version récente, utilisez la commande documentée et conservez une sauvegarde restaurable avant une opération massive.
Conclusion
Nextcloud Preview Generator est utile lorsque les miniatures à la demande ralentissent réellement Files, Photos ou Memories. Installez une version compatible, imposez le mode Cron, puis commencez par un utilisateur ou un dossier pilote. Limitez les tailles, la concurrence et la durée des jobs à partir de mesures, pas d’une configuration copiée. Enfin, surveillez la file et l’espace occupé, car le gain de rapidité provient directement d’un calcul anticipé et d’un stockage supplémentaire.
Découvrir l’hébergement Nextcloud GaprodEspace Nextcloud géré en France, sans administration du serveur