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'app Monitor doit être activée dans Nextcloud pour l'API serverinfo : Paramètres → Applications → Outils système → Monitor (ou occ app:enable serverinfo).
ℹ️ Choisissez votre type d'installation ci-dessous : les trois commandes s'adaptent.
Le champ reste modifiable pour les cas particuliers (chemin occ différent, linuxserver, Podman…).
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 lance occ en www-data. Sur l'instance : installer jq (et skopeo pour les mises à jour Docker) et vérifier que occ s'exécute. Générez d'abord un token Push sur la carte serveur, puis cliquez sur « Script ».
ℹ️ Le script collecte les données (occ setupchecks + Docker) une seule fois et les pousse vers chaque monitor listé dans /etc/ncstatuscheck/targets-<instance>.conf. Le moment de l'envoi est décidé par monitor.
➕ Plusieurs monitors : pour qu'un 2ᵉ NcStatusCheck surveille la même instance, ne touchez pas au script. Depuis l'admin de l'autre monitor, exécutez seulement l'étape 3 (ligne targets, idempotente).
🐳 Nextcloud en Docker (image officielle, compose, AIO) : le script s'installe sur l'hôte, jamais dans le conteneur, et occ passe par docker exec. Choisissez le type d'installation dans le générateur : le champ occ est prérempli (AIO : conteneur nextcloud-aio-nextcloud). Test : docker exec -u www-data <conteneur> php occ status ; si du JSON sort, la sonde fonctionnera.
🖥️ Plusieurs Nextcloud sur un même serveur : chacun a sa config, son cron, ses cibles et son log, suffixés par un slug tiré de l'URL (ex. latest_ezeo_coop). Générez le script depuis la carte de chaque serveur.
🔁 Script à jour : un ↑ orange (tableau de bord, page détail, carte serveur) signale un script obsolète : régénérez-le et redéployez-le. Depuis 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 :
L'URL suffit : sans jeton, la version est lue sur /status.php. Après l'ajout, vous arrivez sur la carte du serveur, où les jetons se saisissent et se testent.
Configurez les versions de référence pour chaque branche Nextcloud :
Nextcloud ne publie pas officiellement quand une version devient « prête pour la prod » : ce seuil est une estimation empirique, ajustable ici.
Une branche qui atteint ce seuil devient « stable », la précédente « oldstable », les plus anciennes « deprecated ». Au-dessus du seuil, elles restent « dev ». Une branche verrouillée « Manuel » n'est jamais recalculée.
Un patch tout juste sorti n'est pas exigé tout de suite (un correctif a déjà dû être remplacé quelques jours après sa sortie). Tant que le « min_secure » a moins de ce nombre de jours, les instances sont jugées sur le patch précédent. Ne vaut que pour les branches resynchronisées, seule source de la date de sortie.
Configurez les versions PHP supportées :
📖 Page officielle des prérequis PHP (Nextcloud)
Signalez manuellement une app (ou une plage de versions) buggée : l'avertissement s'applique à toutes les instances surveillées qui l'utilisent.
Versions : vide ou * = toutes ; sinon une condition (<, >, >=, <=, =) ou une plage, ex. >=4.0 <5.0. App id = identifiant technique (ex. calendar).
Recevez une alerte (email et/ou Mattermost) quand un serveur change d'état et sur les signaux lents (SSL, version, push, audit, apps, setupchecks), sans garder le tableau de bord ouvert.
Tout se règle dans config.php (constantes ALERT_*) : ces réglages portent des secrets, ils n'ont pas d'équivalent web. Cette page les documente, montre l'état effectif et permet de tester l'envoi.
« Silence = tout va bien » ne tient que si les silences sont vérifiables. Cette page liste les acquittements de toute la flotte et dit, pour chacun, s'il masque encore quelque chose.
Un acquittement inerte ne masque rien aujourd'hui. Il n'est pas inoffensif pour autant : sans échéance, il taira aussi le retour du problème.
Chargement…
Génère les règles qui n'autorisent que les adresses IP connues à atteindre le monitor : un inconnu ne peut alors même pas parler à l'application pour y chercher une faille.
C'est une défense en profondeur : elle ne remplace ni l'authentification Basic, ni les jetons Push, ni auth_require_admin(). Cette page génère un texte à relire et à coller ; elle ne touche jamais votre serveur web ni votre pare-feu.
🔒 Indisponible sur l'instance de démonstration. Cet onglet affiche les adresses IP réelles des serveurs surveillés, précisément ce que la démo masque.