Alerte sécurité — CVE de contournement 2FA de mai 2026
En mai 2026, deux vulnérabilités critiques de contournement de l'authentification à deux facteurs ont été divulguées dans Nextcloud :
CVE-2026-45690 (score CVSS 5.9, divulguée le 15 mai 2026) : un attaquant disposant de l'identifiant et du mot de passe d'un compte peut contourner la vérification 2FA en utilisant une connexion HTTP Basic Auth (authentification basique via l'en-tête Authorization: Basic base64(user:pass)). Nextcloud, dans les versions affectées, acceptait HTTP Basic Auth même lorsque le 2FA était activé pour le compte ciblé, sans exiger la vérification du second facteur.
CVE-2026-45691 (score CVSS 5.9, divulguée le 13 mai 2026) : même classe de vulnérabilité, mais exploitable via un token Bearer DAV — le protocole WebDAV, notamment utilisé par les clients de synchronisation de bureau (Nextcloud Desktop, Nautilus, Finder). Un attaquant pouvant intercepter ou deviner un token WebDAV peut accéder à l'instance sans 2FA.
Les deux CVE sont corrigées dans Nextcloud 32.0.9 (branche 32) et 33.0.3 (branche 33). Les branches 34.x et supérieures ne sont pas affectées. Vérifier si votre instance est vulnérable (voir section dédiée plus bas).
NC 34.0.0 — apps recommandées absentes au premier démarrage
Nextcloud 34.0.0 introduit une régression dans le wizard d'installation : les applications recommandées (Notes, Calendar, Contacts) ne sont pas proposées lors de la configuration initiale. La liste des apps suggérées reste vide, quel que soit le profil d'installation choisi.
Impact concret : une instance fraîche en NC 34.0.0 ne dispose pas des applications de base. Les utilisateurs qui espèrent synchroniser leur agenda CalDAV ou leurs contacts CardDAV doivent les installer manuellement depuis l'interface d'administration.
Sources : issues GitHub #61313 et #61611 — corrigé dans 34.0.2.
Vérifier si vos apps sont présentes :
docker compose exec -u www-data app php occ app:list | grep -E 'calendar|contacts|notes'Si la commande ne retourne rien, les apps ne sont pas installées. Pour les ajouter manuellement :
docker compose exec -u www-data app php occ app:install calendar
docker compose exec -u www-data app php occ app:install contacts
docker compose exec -u www-data app php occ app:install notesRecommandation : démarrer directement en 34.0.2 ou supérieur plutôt qu'en 34.0.0. Si votre instance tourne en 34.0.0, la mise à jour vers 34.0.2 restaure le wizard — mais les apps manquantes sur l'instance existante doivent tout de même être installées manuellement.
NC 34.0.0 — contrainte dupliquée sur PostgreSQL et explosion CPU
Sur les instances utilisant PostgreSQL (en lieu et place de MariaDB/MySQL), une migration interrompue de Nextcloud 34.0.0 peut laisser une contrainte dupliquée sur la table oc_filecache_extended. Ce doublon passe inaperçu au démarrage mais provoque une explosion de CPU et de RAM lors du prochain scan de fichiers (files:scan) ou d'une maintenance automatique.
Symptômes : charge CPU anormalement élevée sur le conteneur Nextcloud, scan de fichiers qui ne se termine pas, erreurs dans les logs du type duplicate key value violates unique constraint.
Source : issue GitHub #61597.
Vérification et correctif :
# 1. Nettoyer les entrées orphelines du cache de fichiers
docker compose exec -u www-data app php occ files:cleanup
# 2. Recréer les index de la table problématique
docker compose exec -u www-data app php occ db:add-missing-indices
# 3. Vérifier qu'aucun index dupliqué ne subsiste
docker compose exec -u www-data app php occ db:add-missing-columnsSi les erreurs persistent, passer directement à 34.0.2 qui contient le correctif de migration.
Note : ce problème ne touche pas les instances MariaDB/MySQL. Les instances PostgreSQL en production sur NC 34.0.0 doivent appliquer ces commandes avant le prochain scan automatique.
Prérequis et dimensionnement
Nextcloud est une application PHP polyvalente qui peut tourner légèrement sur un petit VPS ou devenir gourmande si vous l'utilisez comme stockage principal de fichiers volumineux.
Configuration minimale recommandée :
- VPS avec 2 Go de RAM (4 Go si vous gérez plus de 5 utilisateurs actifs).
- SSD obligatoire : Nextcloud effectue de nombreuses opérations de fichiers et de miniatures. Un disque HDD rend l'interface très lente.
- 20 Go d'espace minimum pour l'installation, plus l'espace pour vos données (prévoyez 2× la taille de vos fichiers pour les vignettes et les versions).
- Ubuntu 22.04 ou Debian 12.
- Docker Engine ≥ 24 et Docker Compose V2.
- Un nom de domaine et un certificat TLS (Let's Encrypt via Certbot).
- Les ports 80 et 443 ouverts dans votre firewall.
Installation de Nextcloud avec Docker Compose
Étape 1 — Créer la structure du projet
mkdir -p /opt/nextcloud && cd /opt/nextcloudCréez le fichier
docker-compose.yml:version: '3.8' services: db: image: mariadb:10.11 restart: unless-stopped environment: MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD} MYSQL_DATABASE: nextcloud MYSQL_USER: nextcloud MYSQL_PASSWORD: ${MYSQL_PASSWORD} volumes: - db:/var/lib/mysql redis: image: redis:7-alpine restart: unless-stopped command: redis-server --requirepass ${REDIS_PASSWORD} volumes: - redis:/data app: image: nextcloud:34.0.4-apache restart: unless-stopped ports: - '127.0.0.1:8080:80' environment: MYSQL_HOST: db MYSQL_DATABASE: nextcloud MYSQL_USER: nextcloud MYSQL_PASSWORD: ${MYSQL_PASSWORD} NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER} NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASSWORD} NEXTCLOUD_TRUSTED_DOMAINS: ${NEXTCLOUD_DOMAIN} REDIS_HOST: redis REDIS_HOST_PASSWORD: ${REDIS_PASSWORD} volumes: - nextcloud:/var/www/html depends_on: - db - redis volumes: db: redis: nextcloud:Étape 2 — Créer le fichier d'environnement
cat > /opt/nextcloud/.env << 'EOF' MYSQL_ROOT_PASSWORD=root_password_fort MYSQL_PASSWORD=nextcloud_password_fort REDIS_PASSWORD=redis_password_fort NEXTCLOUD_ADMIN_USER=admin NEXTCLOUD_ADMIN_PASSWORD=admin_password_fort NEXTCLOUD_DOMAIN=cloud.votredomaine.com EOFÉtape 3 — Lancer les conteneurs
docker compose up -dLe premier démarrage prend 2 à 4 minutes : Nextcloud installe et configure l'application, crée les tables de base de données et configure Redis. Suivez la progression avec :
docker compose logs -f appAttendez le message
Nextcloud was successfully installedavant de continuer.Étape 4 — Configurer Nginx avec TLS
apt install -y nginx certbot python3-certbot-nginx cat > /etc/nginx/sites-available/nextcloud << 'EOF' server { server_name cloud.votredomaine.com; client_max_body_size 10G; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_read_timeout 3600s; } } EOF ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/ certbot --nginx -d cloud.votredomaine.com nginx -t && systemctl reload nginxÉtape 5 — Configurer l'URL de confiance dans Nextcloud
Après l'installation, Nextcloud doit connaître son domaine public pour générer des liens corrects et accepter les connexions.
Éditez
config.phpdans le conteneur :docker compose exec -u www-data app php occ config:system:set trusted_domains 0 \ --value=cloud.votredomaine.com docker compose exec -u www-data app php occ config:system:set overwrite.cli.url \ --value=https://cloud.votredomaine.com docker compose exec -u www-data app php occ config:system:set htaccess.RewriteBase --value='/' docker compose exec -u www-data app php occ maintenance:update:htaccess
Vérifier si votre instance est vulnérable aux CVE 2FA
Si votre instance Nextcloud tourne sur une version 32.x antérieure à 32.0.9 ou 33.x antérieure à 33.0.3 (et que vous avez le 2FA activé), voici comment vérifier votre exposition et la corriger. Les branches 34.x et supérieures ne sont pas affectées.
Vérifier la version actuelle :
docker compose exec -u www-data app php occ status
# Affiche : Nextcloud version: 32.0.X, 33.0.X ou 34.0.XVersions vulnérables : toutes les versions Nextcloud 32.x < 32.0.9 et 33.x < 33.0.3. Les branches 34.x et supérieures ne sont pas affectées par ces CVE.
Test de vulnérabilité (sur votre propre instance uniquement) :
# Testez si HTTP Basic Auth contourne le 2FA
curl -u utilisateur:motdepasse -X PROPFIND \
https://cloud.votredomaine.com/remote.php/dav/files/utilisateur/ \
-H "Depth: 0" -s -o /dev/null -w "%{http_code}"Si la commande retourne 207 Multi-Status sans que le code 2FA ne soit demandé, votre instance est vulnérable à CVE-2026-45690.
Mettre à jour vers la version corrigée :
# Branche 32 → 32.0.9
sed -i 's|nextcloud:[0-9.]*-apache|nextcloud:32.0.9-apache|g' docker-compose.yml
# Branche 33 → 33.0.3
# sed -i 's|nextcloud:[0-9.]*-apache|nextcloud:33.0.3-apache|g' docker-compose.yml
docker compose pull app
docker compose up -d app
docker compose exec -u www-data app php occ upgradeOptimiser les performances avec Redis et OPcache
Nextcloud sans Redis est une Nextcloud lente. Redis joue deux rôles critiques : cache de sessions (évite les lectures/écritures disque à chaque requête authentifiée) et verrou distribué (file locking) qui empêche les conflits lors de synchronisations simultanées.
Vérifiez que Redis est bien connecté :
docker compose exec -u www-data app php occ config:system:get redis
# Doit afficher un tableau avec host, port, passwordSi rien n'apparaît, ajoutez manuellement dans config.php du volume Nextcloud :
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => [
'host' => 'redis',
'port' => 6379,
'password' => 'VOTRE_REDIS_PASSWORD',
],OPcache PHP. L'image Docker officielle de Nextcloud inclut OPcache préconfiguré. Vérifiez qu'il est actif :
docker compose exec app php -r "echo opcache_get_status()['opcache_enabled'] ? 'OPcache actif' : 'OPcache inactif';"Résultat attendu : l'interface Nextcloud doit être notablement plus réactive avec Redis. La différence est perceptible dès la première navigation : les requêtes qui lisaient le disque à chaque accès s'appuient désormais sur le cache en mémoire.
Les 5 erreurs fréquentes sur une instance Nextcloud
Erreur 1 — Redis non configuré. L'interface est lente et les synchronisations simultanées créent des conflits. Solution : vérifier et configurer Redis comme décrit ci-dessus.
Erreur 2 — overwrite.cli.url pointant vers http:// au lieu de https://. Les liens de partage, les notifications e-mail et les liens OIDC génèrent des URLs HTTP non sécurisées. Solution : php occ config:system:set overwrite.cli.url --value=https://votre-domaine.com.
Erreur 3 — trusted_domains mal configuré. Accès refusé avec l'erreur « You are accessing the server from an untrusted domain ». Solution : ajouter votre domaine avec php occ config:system:set trusted_domains 0 --value=votre-domaine.com.
Erreur 4 — Taille max des fichiers upload limitée à 2 Mo. La valeur par défaut de PHP est trop basse pour de vrais fichiers. Solution : dans Nginx, ajouter client_max_body_size 10G; et dans le conteneur PHP, configurer upload_max_filesize=10G et post_max_size=10G dans un fichier .ini monté.
Erreur 5 — Mise à jour manquée et instance vulnérable. Nextcloud publie des mises à jour de sécurité régulièrement. Sans surveillance des CVE et sans mise à jour automatique, l'instance devient vulnérable. Solution : configurer les notifications de mise à jour dans l'interface admin et planifier des mises à jour régulières.
Vérification de l'efficacité de Redis avec occ
Nextcloud fournit un outil de diagnostic intégré pour vérifier que votre cache Redis est effectivement utilisé :
# Vérifier l'état général de l'instance
docker compose exec -u www-data app php occ status
# Vérifier les avertissements de configuration (memcache, Redis, HTTPS…)
docker compose exec -u www-data app php occ check
# Afficher la configuration Redis actuelle
docker compose exec -u www-data app php occ config:system:get redisLa commande occ check liste tous les problèmes de configuration détectés : Redis absent, HTTPS non forcé, serveur de mail non configuré, fichiers de données dans le répertoire web (risque de sécurité), etc. C'est le premier diagnostic à lancer sur toute instance Nextcloud existante avant de la déclarer propre.
Sauvegardes Nextcloud — données, base et config
Nextcloud stocke ses données dans trois endroits distincts, et une sauvegarde complète doit couvrir les trois :
1. La base de données MariaDB : contient les métadonnées des fichiers, les utilisateurs, les partages, les applications installées et leur configuration.
2. Le volume nextcloud (données de l'application) : contient le code PHP de Nextcloud, les applications installées et config/config.php — le fichier de configuration principal.
3. Les fichiers utilisateurs : par défaut dans le volume Docker ou dans un chemin external défini par datadirectory dans config.php.
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/opt/nextcloud/backups
mkdir -p $BACKUP_DIR
# 1. Activer le mode maintenance pour cohérence
docker compose exec -u www-data app php occ maintenance:mode --on
# 2. Sauvegarder la base de données (MariaDB 10.x)
docker compose exec -T db \
mysqldump -u nextcloud -p${MYSQL_PASSWORD} nextcloud | gzip > $BACKUP_DIR/db-$DATE.sql.gz
# 3. Sauvegarder config.php
docker compose cp app:/var/www/html/config/config.php $BACKUP_DIR/config-$DATE.php
# 4. Désactiver le mode maintenance
docker compose exec -u www-data app php occ maintenance:mode --offNote MariaDB 11+ : si vous utilisez mariadb:11.x, remplacez mysqldump par mariadb-dump (voir section dédiée ci-dessous).
Sauvegarde avec MariaDB 11 — mariadb-dump remplace mysqldump
À partir de MariaDB 11.0, les binaires mysqldump et mysql ont été retirés de l'image Docker officielle. Seules les commandes mariadb-dump et mariadb sont désormais disponibles. Si votre docker-compose.yml monte une image mariadb:11.x ou ultérieure et que vos scripts de sauvegarde utilisent encore mysqldump, ils échoueront silencieusement — la commande n'est pas trouvée, le script sort en erreur sans message explicite dans les logs Nextcloud.
Vérifier votre version MariaDB :
docker compose exec db mariadb --version
# ou
docker compose exec db mariadb -u nextcloud -p${MYSQL_PASSWORD} -e "SELECT VERSION();"Script de sauvegarde compatible MariaDB 11+ :
#!/bin/bash
DATE=$(date +%Y%m%d)
BACKUP_DIR=/opt/nextcloud/backups
mkdir -p $BACKUP_DIR
# 1. Mode maintenance
docker compose exec -u www-data app php occ maintenance:mode --on
# 2. Dump avec mariadb-dump (MariaDB 11+) — remplace mysqldump
docker compose exec -T db \
mariadb-dump -u nextcloud -p${MYSQL_PASSWORD} nextcloud \
| gzip > $BACKUP_DIR/db-$DATE.sql.gz
# 3. Vérification de l'archive
if gzip -t $BACKUP_DIR/db-$DATE.sql.gz 2>/dev/null; then
echo "Sauvegarde OK : $BACKUP_DIR/db-$DATE.sql.gz"
else
echo "ERREUR : archive corrompue ou vide"
docker compose exec -u www-data app php occ maintenance:mode --off
exit 1
fi
# 4. Sauvegarder config.php
docker compose cp app:/var/www/html/config/config.php $BACKUP_DIR/config-$DATE.php
# 5. Quitter le mode maintenance
docker compose exec -u www-data app php occ maintenance:mode --offRestauration :
# Restaurer la base de données
gunzip -c $BACKUP_DIR/db-$DATE.sql.gz | \
docker compose exec -T db mariadb -u nextcloud -p${MYSQL_PASSWORD} nextcloudNote : si vous restez sur mariadb:10.11 (encore supportée, EOL février 2028), mysqldump et mariadb-dump fonctionnent tous les deux. La suppression du binaire mysqldump ne touche que MariaDB 11.0 et supérieur. Cependant, adopter mariadb-dump dès maintenant rend vos scripts pérennes pour la migration future.
Prochaines étapes — aller plus loin avec votre instance
Une fois Nextcloud installé et sécurisé, vous pouvez aller plus loin :
Activer Talk (visioconférence) : installez l'application Nextcloud Talk depuis l'interface d'administration. Pour les réunions de plus de 4–5 participants, un serveur TURN est requis (Coturn sur un VPS dédié).
Activer OnlyOffice ou Collabora Online (édition de documents en ligne) : ces applications nécessitent leur propre conteneur Docker et une configuration Nextcloud Office. Elles permettent de créer et modifier des fichiers .docx, .xlsx et .pptx directement dans l'interface web.
Monitoring de l'instance : configurez les alertes dans Administration → Monitoring pour recevoir des notifications e-mail si Nextcloud détecte des erreurs de configuration, des mises à jour de sécurité ou des problèmes de quota.
Mettre à jour Nextcloud en production
La mise à jour de Nextcloud doit toujours passer par le mode maintenance pour éviter les corruptions de données pendant que des clients synchronisent :
# 1. Activer le mode maintenance
docker compose exec -u www-data app php occ maintenance:mode --on
# 2. Sauvegarder la base de données (adapter selon votre version MariaDB)
# MariaDB 10.x :
docker compose exec -T db mysqldump -u nextcloud -p${MYSQL_PASSWORD} nextcloud \
| gzip > /opt/nextcloud/backups/pre-update-db.sql.gz
# MariaDB 11+ :
# docker compose exec -T db mariadb-dump -u nextcloud -p${MYSQL_PASSWORD} nextcloud \
# | gzip > /opt/nextcloud/backups/pre-update-db.sql.gz
# 3. Changer la version dans docker-compose.yml (ex: 34.0.4-apache)
sed -i 's|nextcloud:[0-9.]*-apache|nextcloud:34.0.4-apache|g' docker-compose.yml
# 4. Télécharger la nouvelle image et redémarrer
docker compose pull app
docker compose up -d app
# 5. Exécuter les migrations
docker compose exec -u www-data app php occ upgrade
# 6. Désactiver le mode maintenance
docker compose exec -u www-data app php occ maintenance:mode --offVérifiez les logs après la mise à jour (docker compose logs app) et testez un accès utilisateur avant de déclarer la mise à jour réussie.
PHP 8.3 : migration et prérequis Nextcloud 35
Nextcloud 35 rend PHP 8.3 obligatoire — PHP 8.2 n'est plus supporté. Ce changement est documenté dans les notes de mise à jour officielles et dans la matrice de compatibilité PHP de Nextcloud (GitHub wiki *Releases and PHP versions*). Si vous utilisez une installation native (sans Docker) ou une image Docker verrouillée sur PHP 8.2, vous devez migrer PHP avant de pouvoir passer à NC 35.
Vérifier la version PHP utilisée par votre instance :
# En Docker (image officielle nextcloud)
docker compose exec app php --version
# En natif (Apache/PHP-FPM)
php8.2 --version || php8.3 --versionChemin de migration recommandé sur Ubuntu 22.04 / Debian 12 (installation native) :
# Ajouter le dépôt Ondřej Surý (PHP multi-version)
apt install -y lsb-release apt-transport-https ca-certificates
curl -sSL https://packages.sury.org/php/apt.gpg | gpg --dearmor -o /etc/apt/keyrings/php.gpg
echo "deb [signed-by=/etc/apt/keyrings/php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" \
> /etc/apt/sources.list.d/php.list
apt update
# Installer PHP 8.3 avec les extensions requises par Nextcloud
apt install -y php8.3 php8.3-fpm php8.3-mysql php8.3-redis php8.3-gd \
php8.3-xml php8.3-mbstring php8.3-curl php8.3-zip php8.3-intl \
php8.3-bcmath php8.3-gmp php8.3-imagick php8.3-opcacheEn Docker — l'image nextcloud:35.x-apache embarque déjà PHP 8.3+ : pas de migration PHP manuelle à faire, l'image inclut la version PHP requise. Il suffit de mettre à jour le tag :
# Dans docker-compose.yml
image: nextcloud:35.0.0-apacheExtensions PHP requises par Nextcloud 35 (référence officielle) :
| Extension | Rôle |
|-----------|------|
| gd ou imagick | Génération de miniatures |
| redis | Cache distribué et file locking |
| intl | Internationalisation |
| bcmath, gmp | Cryptographie |
| zip | Gestion des archives |
| opcache | Performances PHP (obligatoire) |
Vérifier les extensions manquantes :
docker compose exec -u www-data app php occ checkLa commande occ check liste les extensions PHP manquantes ou mal configurées et indique clairement si PHP 8.3 minimum est satisfait.
Nextcloud 35 : chemin de mise à jour et versions PHP supportées
Nextcloud 35.0.0 est sorti le 16 septembre 2026 (Hub 26 Summer). Cette version impose un chemin de mise à jour séquentiel strict, une version PHP minimale obligatoire (PHP 8.3 — PHP 8.2 abandonné), et entraîne des changements importants pour les environnements MariaDB 11.
PHP 8.3, 8.4 et 8.5 supportés — PHP 8.2 abandonné
Nextcloud 35 supporte officiellement PHP 8.3 (minimum obligatoire), 8.4 et 8.5 (recommandé). PHP 8.2 n'est plus supporté dans NC 35 — une instance tournant sur PHP 8.2 ne pourra pas démarrer après mise à jour vers NC 35. Épinglez toujours sur un tag Docker explicite pour maîtriser la version PHP :
# À éviter : tag implicite
image: nextcloud:latest
# Recommandé : tag précis avec version PHP maîtrisée
image: nextcloud:35.0.0-apache
# ou pour la variante FPM :
image: nextcloud:35.0.0-fpmChemin séquentiel obligatoire : v33 → v34 → v35
Nextcloud ne supporte pas les sauts de version dans ses migrations de base de données. Passer directement de v32 ou v33 à v35 peut corrompre la base de données silencieusement, sans message d'erreur clair. Le chemin obligatoire est :
v33.x → v34.x (dernière mineure) → v35.0.0Chaque étape exige l'exécution de occ upgrade avant de passer à la suivante :
# Étape 1 : montée vers NC 34 (dernière version stable)
docker compose exec -u www-data app php occ maintenance:mode --on
sed -i 's|nextcloud:[0-9.]*-apache|nextcloud:34.0.4-apache|g' docker-compose.yml
docker compose pull app && docker compose up -d app
docker compose exec -u www-data app php occ upgrade
docker compose exec -u www-data app php occ maintenance:mode --off
# Étape 2 : montée vers NC 35 (après vérification de NC 34)
docker compose exec -u www-data app php occ maintenance:mode --on
sed -i 's|nextcloud:[0-9.]*-apache|nextcloud:35.0.0-apache|g' docker-compose.yml
docker compose pull app && docker compose up -d app
docker compose exec -u www-data app php occ upgrade
docker compose exec -u www-data app php occ maintenance:mode --offDésactiver les apps incompatibles avant chaque montée
Avant de lancer occ upgrade, vérifiez que toutes vos apps tierces sont compatibles avec la version cible. Une app incompatible peut bloquer la migration ou provoquer des erreurs au démarrage :
# Lister les apps actives et leur état
docker compose exec -u www-data app php occ app:list
# Désactiver une app incompatible (exemple : une app communautaire non encore portée)
docker compose exec -u www-data app php occ app:disable nom_de_lappConsultez la matrice de compatibilité sur apps.nextcloud.com avant chaque montée de version majeure.
Vérifier la compatibilité de vos apps avant de passer à Nextcloud 35
Avant d'upgrader vers NC 35, lancez la vérification de compatibilité intégrée :
docker exec -u www-data <nom_du_conteneur> php occ app:check-platform-compatibilitySi une app retourne une erreur de compatibilité, désactivez-la avant de lancer la mise à jour :
docker exec -u www-data <nom_du_conteneur> php occ app:disable nom_de_lappLes apps les plus souvent bloquantes lors des montées de version majeures : Talk, Calendar, Contacts et les intégrations tierces (OnlyOffice, Collabora). Vérifiez leur compatibilité sur apps.nextcloud.com avant chaque upgrade — la page de chaque app indique les versions Nextcloud supportées.
Rappel : après l'upgrade, relancez occ check pour détecter d'éventuels problèmes de configuration induits par la montée de version :
docker compose exec -u www-data app php occ checkRecognize v7 — déboguer l'erreur silencieuse « sh: exec: line 1 »
L'application Recognize (reconnaissance d'images et de visages) peut échouer silencieusement sur certaines installations Docker avec une erreur du type :
Classifier process output: sh: exec: line 1: recognize/bin/node: not foundCette erreur n'apparaît pas dans l'interface d'administration — elle se lit uniquement dans les logs du conteneur ou les logs Nextcloud. L'app semble installée et active, mais aucun tag n'est généré.
Causes principales :
- Incompatibilité d'architecture CPU : le binaire Node.js embarqué dans Recognize est compilé pour x86_64. Sur ARM64 (Raspberry Pi, certains VPS ARM), il n'est pas exécutable.
- Binaire manquant ou non exécutable : permissions incorrectes après un montage de volume.
Diagnostic :
# 1. Vérifier les logs du processus de classification
docker compose logs app | grep -i recognize
# 2. Tester le binaire Node directement dans le conteneur
docker compose exec app sh -c "ls -la /var/www/html/apps/recognize/bin/"
docker compose exec app sh -c "/var/www/html/apps/recognize/bin/node --version"
# 3. Vérifier l'architecture du système
docker compose exec app uname -m
# Résultat attendu pour un fonctionnement normal : x86_64Correctif sur x86_64 :
# Forcer le mode WASM (WebAssembly) si le binaire Node natif échoue
docker compose exec -u www-data app php occ config:app:set recognize \
tensorflow.gpu_enabled --value=false
docker compose exec -u www-data app php occ config:app:set recognize \
node_binary --value=""
# Relancer la classification manuelle
docker compose exec -u www-data app php occ recognize:classifySur ARM64 : activez le mode WASM dans les paramètres de l'app (Administration → Recognize → Use WASM backend). Ce mode est plus lent mais fonctionne sur toutes les architectures.