NcStatusCheck
Monitoraggio centralizzato per più istanze Nextcloud
NcStatusCheck è uno strumento di monitoraggio che consente di tenere traccia dello stato di più server Nextcloud da un'unica interfaccia web: versioni di Nextcloud e PHP rispetto alla loro soglia di sicurezza, fine vita del branch, raggiungibilità, avvisi di configurazione, app installate, container Docker e vulnerabilità note.



🎯 Funzionalità
Monitoraggio
- Tre modalità di raccolta dati per server: Base (solo versione NC), Estesa (dati completi tramite l'API serverinfo) e Push (dati inviati dall'istanza remota)
- Analisi delle versioni per Nextcloud e PHP rispetto a una soglia di sicurezza che il cron mantiene sincronizzata con le release ufficiali, con un ritardo di tolleranza (
nc_update_grace_days) affinché un'istanza venga segnalata solo pochi giorni dopo il rilascio di una patch
- Ciclo di vita dei branch: fine vita di ciascun branch Nextcloud (calendario ufficiale), date di rilascio successive e quanti dei tuoi server eseguono ciascun branch
- Tracciamento up/down: raggiungibilità attuale più un registro limitato delle transizioni confermate, che alimenta una percentuale di disponibilità su 30 giorni e un elenco di incidenti
- Scadenza del certificato SSL, letta dalla sonda HTTPS esistente (nessuna richiesta aggiuntiva)
- Vulnerabilità note (opt-in): avvisi di Nextcloud, Collabora e OnlyOffice confrontati con le versioni effettivamente in esecuzione nella tua flotta
- Audit delle app installate: confronta
occ app:list con l'app store di Nextcloud (app che bloccano l'aggiornamento o incompatibili, aggiornamenti disponibili, segnali di maturità e turbolenza)
- Container Docker: container fermi, in riavvio o non integri, e aggiornamenti delle immagini verificati rispetto al catalogo dei tag del registry (patch nel tuo branch, branch più recente). Quando più istanze monitorate condividono una macchina, i container vengono attribuiti alla rispettiva istanza
- Avvisi proattivi (webhook e/o email): cambi di stato up/down, più segnali lenti (scadenza SSL, versione vulnerabile, sonda Push obsoleta, report di audit critico, rilevazione di app bloccanti,
occ non funzionante). Un avviso per ogni nuova condizione, senza spam di promemoria
- Metti in pausa un server (migrazione, dismissione): sonde e avvisi vengono sospesi, la riga resta visibile
- Monitoraggio del client desktop: versione attuale, release candidate in arrivo, ritmo di rilascio misurato
Dashboard
- Tabella della flotta (Server | Nextcloud | PHP | Stato) e tabella del ciclo di vita dei branch affiancate su schermi larghi
- Colonna Stato che segue il principio "silenzio = tutto ok": badge solo quando c'è qualcosa su cui agire
- Schede di sintesi: aggiornamenti da applicare, vulnerabilità, fine vita del branch, rilasci imminenti, avvisi attivi, app, Docker, client desktop. Ognuna apre i propri dettagli in una finestra
- Monitoraggio della flotta per app e immagini Docker, ordinato in base a ciò che devi fare: Da rivedere, Da fare, Da pianificare e un gruppo Contesto ripiegato
- Filtri per stato Nextcloud, stato PHP, stato complessivo (offline, manutenzione, avvisi, errore sonda, aggiornamenti Docker…), immagine Docker e ricerca testuale
- Tag sotto il nome di ciascun server, cliccabili per filtrare (più tag = tutti contemporaneamente): i tuoi tag personalizzati (
client:durand, lab…), più un tag 🖥 che indica la macchina quando più istanze monitorate girano sullo stesso server (rilevato da Push, script v12+), un colore per macchina. Un tag scritto type:value assume il colore del suo tipo, così ogni tag client:… condivide un unico colore
- Interfaccia FR / EN / DE
Pagina di dettaglio
- Riquadri di stato sopra le schede: raggiungibilità, disponibilità su 30 giorni (elenco incidenti in una finestra), certificato SSL, freschezza di ciascuna sonda
- Panoramica: verdetto sulla versione, avvisi silenziati (prese in carico con relativa motivazione e scadenza), riepilogo dell'istanza (PHP, web server, database, cache, deployment e strumenti satellite come la suite office, Talk HPB o whiteboard, come visti da app e container), poi problemi raggruppati per area
- Schede: informazioni tecniche, applicazioni, container Docker, sonde
- Tag sotto l'URL, modificabili sul posto, con le altre istanze in esecuzione sulla stessa macchina
- Ogni avviso può essere preso in carico (motivazione + scadenza opzionale)
- Report di audit del server quando l'istanza invia il suo report mensile
nc-audit.sh
Amministrazione
- Server: aggiungi un server tramite il suo URL (
https:// opzionale), poi configura le sue sonde sulla relativa scheda (token serverinfo con pulsante Test, token Push e generatore di script pronto all'uso), assegna tag, metti in pausa o rimuovi
- Host condivisi: indica quale stack Docker compose appartiene a quale istanza quando più Nextcloud monitorati condividono una macchina
- Versioni NC / PHP: soglie di sicurezza, regole di stato, risincronizzazione dalle release ufficiali
- Avvisi sulle app: un elenco manuale di bug noti
- Notifiche: la configurazione effettiva degli avvisi (impostata in
config.php, mostrata in sola lettura) e un pulsante di test
- Filtro IP: genera regole di allowlist per nginx / Apache / ufw
- Silenziamenti: audit di ogni presa in carico sull'intera flotta e quali nascondono ancora qualcosa
- Modalità di raccolta: guida per le tre sonde
- Pulsante "Trigger Push" sulla dashboard: chiede a ogni server Push di inviare i propri dati alla successiva esecuzione del cron
🏗️ Architettura