Optimiser la visualisation des images sur Nextcloud

Optimiser la visualisation des images sur Nextcloud
Photo by Mylene Tremoyet / Unsplash

J'ai repris les infos sur le site d'Admin malin , je les copie ici comme un pense bête avec quelques modifications.
A savoir que j'ai fait la manip sur une instance sous Docker.

Si vous avez une instance Nextcloud avec beaucoup d'images, il est possible que l'application Photos soit extrêmement lente, que se soit depuis un navigateur ou l'application mobile. Nous allons voir dans cet article comment corriger ces lenteurs.

Prérequis

Il est nécessaire d'avoir une instance Nextcloud fonctionnelle.
Disposer des droits d'administrations sur l'instance.
Un compte avec les droits root sur la machine pour réaliser la configuration et la mise en place des tâches planifiées.

Procédure

/!\ Attention /!\ Les commandes sont à adapter suivant votre environnement

Dans mon exemple, l'instance est installée dans /var/www/nextcloud et l'utilisateur utilisé par le serveur web est www-data

1) Se connecter sur l'instance Nextcloud avec un compte administrateur

2) Installer l'application Preview Generator par Roeland Jago Douma Sous licence AGPL

3) Se connecter en SSH sur le serveur hébergeant l'instance Nextcloud

4) Configurer l'application Preview Generator avec les commandes suivantes

4') Si vous êtes avec l'instance Docker, utilisez la commande suivante :

docker exec -i -u 33 nextcloud_name php sh
# sudo -u www-data php /var/www/nextcloud/occ config:app:set previewgenerator squareSizes --value="32 256"
# sudo -u www-data php /var/www/nextcloud/occ config:app:set previewgenerator widthSizes --value="256 384"
# sudo -u www-data php /var/www/nextcloud/occ config:app:set previewgenerator heightSizes --value="256"
# sudo -u www-data php /var/www/nextcloud/occ config:system:set preview_max_x --value 2048
# sudo -u www-data php /var/www/nextcloud/occ config:system:set preview_max_y --value 2048
# sudo -u www-data php /var/www/nextcloud/occ config:system:set jpeg_quality --value 60
# sudo -u www-data php /var/www/nextcloud/occ config:app:set preview jpeg_quality --value="60"
Si vous lancez sur Docker on peut remplacer le début par php occ , pas besoin d'autres droits.

5) Maintenant, il est nécessaire de générer les aperçus des images. C'est cette étape qui va permette d'améliorer les performances de votre instance Nextcloud

/!\ Attention /!\ Cette première exécution peut être très longue si vous avez beaucoup d'images

# sudo -u www-data php /var/www/nextcloud/occ preview:generate-all -vvv

ou si votre instance est sous Docker

docker exec -t -u 33 nextcloud_app_1 php -d memory_limit=-1  occ preview:generate-all -vvv
le memory_limit est là pour éviter des crash lors de très gros scan

6) Pour finir, il faut configurer une tâche cron pour générer les miniatures régulièrement

# sudo -u www-data crontab -e
à exécuter hors de Docker.

Ajouter la ligne suivante pour générer les miniatures toutes les 5 minutes (à adapter suivant vos besoins)

*/5 * * * * php -f /var/www/nextcloud/occ preview:pre-generate 

ou si votre instance est sous Docker

*/5 * * * * docker exec -t -u 33 nextcloud_app_1 php -f occ preview:pre-generate

Lien de l'article source