⚙️ Administration - NcStatusCheck

Configuration des versions de référence et gestion des serveurs

Modes de collecte des données

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
🛠️ Sonde Étendue — configurer et tester le token serverinfo

⚠️ 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…).

1. Générer et définir un token :
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"
2. Vérifier le token en place :
sudo -u www-data php /var/www/cloud/occ config:app:get serverinfo token
3. Supprimer le token :
sudo -u www-data php /var/www/cloud/occ config:app:delete serverinfo token
4. Tester l'API serverinfo (debug) :
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.

📡 Sonde Push — déployer le script, plusieurs monitors, plusieurs instances

⚠️ 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.

✅ Vérifier (exécution manuelle) :
/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.

Gestion des serveurs

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.

Serveurs surveillés :

Versions Nextcloud

Configurez les versions de référence pour chaque branche Nextcloud :

Nom de la branche
Version minimale
Label d'affichage
Statut
Action

Versions PHP

Configurez les versions PHP supportées :

Version PHP
Version minimale
Label d'affichage
Statut
Action

Avertissements manuels (apps)

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).

App id
Versions impliquées
Sévérité
Message (optionnel)
Ajouté le
Action