Configuration des versions de référence et gestion des serveurs
Chaque serveur peut utiliser un ou plusieurs modes de collecte, non exclusifs :
| Mode | Badge | Source | Données collectées | Configuration requise |
|---|---|---|---|---|
| Basic | (aucun) | /status.php |
Version Nextcloud uniquement | Aucune — fonctionne dès l'ajout du serveur |
| Étendu | ⚡ Étendu | /ocs/v2.php/apps/serverinfo/… |
Version NC, PHP, serveur web, OPcache, Redis, base de données, utilisateurs actifs… | Token serverinfo à renseigner dans la zone "Sondes" de la carte serveur |
| Push | 📡 Push | Script cron sur l'instance distante | Même données qu'Étendu + mises à jour Docker disponibles + résultats occ setupchecks |
Générer un token Push depuis la carte serveur, puis déployer le script bash sur l'instance Nextcloud |
⚠️ L'application Monitor doit être activée dans Nextcloud pour que l'API serverinfo fonctionne.
Vérifier dans Paramètres → Applications → Outils système → Monitor (ou via occ app:enable serverinfo).
ℹ️ Adapter le chemin /var/www/cloud/occ selon l'emplacement de votre instance Nextcloud
(ex : /var/www/nextcloud/occ, /opt/nextcloud/occ…).
TOKEN=$(openssl rand -hex 32) && \ sudo -u www-data php /var/www/cloud/occ config:app:set serverinfo token --value "$TOKEN" && \ echo "Token généré : $TOKEN"
sudo -u www-data php /var/www/cloud/occ config:app:get serverinfo token
sudo -u www-data php /var/www/cloud/occ config:app:delete serverinfo token
wget -qO- --header="NC-Token: VOTRE_TOKEN" "https://cloud.example.com/ocs/v2.php/apps/serverinfo/api/v1/info?format=json"
Remplacer VOTRE_TOKEN et l'URL par ceux du serveur concerné.
Une réponse JSON valide confirme que le token et l'app Monitor sont corrects.
⚠️ Le script tourne en root via cron et exécute occ en tant que www-data.
Sur l'instance Nextcloud : installer jq (et skopeo pour la détection des mises à jour Docker),
et vérifier que occ est exécutable. Générez d'abord un token Push depuis la carte serveur,
puis utilisez le bouton « Script ».
ℹ️ Le script collecte les données (occ setupchecks + Docker) une seule fois, puis les pousse
vers tous les monitors listés dans /etc/ncstatuscheck/targets-<instance>.conf.
La décision d'envoi (déclenchement immédiat ou intervalle) est prise par monitor.
➕ Plusieurs monitors (fan-out) — pour qu'un 2ᵉ NcStatusCheck surveille la même instance, ne retouchez pas le script :
depuis l'admin de l'autre monitor, exécutez uniquement l'étape 3 (la ligne targets, idempotente).
Une seule collecte, push vers les deux.
🖥️ Plusieurs instances Nextcloud sur un même serveur — chacune a son propre script/cron/targets/log,
suffixés par un slug dérivé de l'URL (ex. latest_ezeo_coop).
Générez le script séparément depuis la carte de chaque serveur — aucune collision.
🔁 Garder le script à jour — un marqueur ↑ orange (colonne Sondes du tableau de bord, page détail,
et carte serveur ici) signale un script obsolète : régénérez-le et redéployez-le.
En venant d'un ancien script (chemins non suffixés), supprimez d'abord
/etc/cron.d/ncstatuscheck, /usr/local/bin/ncstatuscheck-push.sh et targets.conf
pour éviter un double push.
/usr/local/bin/ncstatuscheck-push.sh /etc/ncstatuscheck/<instance>.conf
Attendu : OK : données envoyées à …. Sinon : 401 = couple URL/token incorrect ;
setupchecks a échoué = OCC_CMD ou sudoers www-data.
Ajoutez ou supprimez des serveurs Nextcloud à surveiller :
Le token est disponible dans Paramètres Nextcloud → Administration → Informations système.
Sans token, seule la version Nextcloud est collectée via /status.php.
Configurez les versions de référence pour chaque branche Nextcloud :
Configurez les versions PHP supportées :
Signalez manuellement une app (ou une plage de versions) buggée : l'avertissement s'applique à toutes les instances surveillées qui l'utilisent.
Versions impliquées : laisser vide ou * = toutes les versions ; sinon une condition par <, >, >=, <=, =, ou une plage (« branche ») ex. >=4.0 <5.0. App id = identifiant technique (ex. calendar).