In questo progetto andremo a realizzare una Status Page self-hosted utilizzando Uptime Kuma su un VPS Linux con Debian 13 (ma va bene anche per derivate, come Ubuntu).
Uptime Kuma è un software open-source, gratuito e self-hosted pensato per monitorare siti web, servizi di rete e infrastrutture da una dashboard semplice ma completa. Tra i controlli supportati ci sono URL HTTP e HTTPS, porte TCP, ping, record DNS, keyword su pagine web, database, container Docker e certificati SSL, oltre alla possibilità di creare status page pubbliche e ricevere notifiche automatiche.
La cosa interessante è che il progetto supporta l’uso tramite Docker e Docker Compose, che sono indicati anche come uno dei metodi più semplici e rapidi per il deployment. Per questo tutorial useremo proprio Docker Compose, in pieno stile “progetto pratico” da VPS Linux.
Requisiti
Prima di iniziare, assicurati di avere:
-
Un VPS con Debian 13.
-
Docker e Docker Compose già installati.
-
Un dominio o sottodominio opzionale, utile se vorrai pubblicare la status page in modo più pulito dietro reverse proxy.
Per quanto riguarda le risorse, il sito ufficiale di Uptime Kuma indica come minimo 1 vCPU, 1 GB di RAM e 20 GB di spazio, mentre la raccomandazione sale a 2 vCPU e 2 GB di RAM. I requisiti reali dipendono dal numero di monitor configurati e dalla quantità di storico che vuoi conservare.
Preparare il VPS Debian/Ubuntu
Come prima cosa, colleghiamoci al VPS via SSH e creiamo una cartella dedicata al progetto.
sudo mkdir -p /opt/stacks/uptime-kuma
cd /opt/stacks/uptime-kuma
A questo punto possiamo creare il file compose.yaml che useremo per avviare il container.
sudo nano compose.yaml
Scrivere il file Docker Compose
Le istruzioni di installazione ufficiali mostrano che Uptime Kuma può essere eseguito in Docker usando l’immagine louislam/uptime-kuma, esponendo la porta 3001 e montando un volume persistente su /app/data.
Qui sotto trovi una configurazione pulita e adatta a un VPS Debian 13 o Ubuntu 24.04.
services:
uptime-kuma:
image: louislam/uptime-kuma:latest
container_name: uptime-kuma
restart: always
ports:
- "3001:3001"
volumes:
- ./data:/app/data
environment:
- TZ=Europe/Rome
In questa configurazione la cartella ./data serve a mantenere persistenti configurazioni, monitor, utenti e storico anche dopo un riavvio del container. La porta 3001 è quella usata di default da Uptime Kuma per la sua interfaccia web.
Salva il file con CTRL + X, poi premi Y e infine INVIO.
Avviare Uptime Kuma
Ora possiamo avviare il progetto con Docker Compose:
docker compose up -d
Se tutto è andato bene, Docker scaricherà l’immagine e creerà il container in background. Puoi controllare che il servizio sia in esecuzione con il comando qui sotto:
docker compose ps
Per accedere alla dashboard, apri il browser e vai al seguente indirizzo, sostituendo l’IP con quello del tuo VPS:
http://IP-DEL-VPS:3001
Uptime Kuma non usa una password predefinita e al primo accesso ti permette di creare l’account amministratore.
Configurazione iniziale
Una volta dentro la dashboard, puoi iniziare creando i primi monitor. Per lo scenario di questa guida, io ti consiglio di partire con tre categorie molto semplici: sito web, VPS e porta TCP.
Ecco alcuni esempi pratici:
-
Monitor HTTP/HTTPS per controllare se il tuo sito risponde correttamente.
-
Monitor Ping per verificare se un VPS/Server è raggiungibile in rete.
-
Monitor TCP Port per sapere se una porta come
22,80,443o quella di un servizio custom è aperta e raggiungibile.
Uptime Kuma supporta intervalli di monitoraggio anche molto brevi, fino a 20 secondi. Su un VPS piccolo, però, ti consiglio di iniziare con 60 secondi per i controlli standard, così riduci il carico senza impatti sull’utilità.
Creare una Status Page
Una delle funzioni più interessanti di Uptime Kuma è la possibilità di ospitare più status page, anche separate per servizi o domini differenti. Questo ti permette di mostrare pubblicamente solo i monitor che vuoi condividere, lasciando privati quelli interni.
Un buon uso pratico può essere questo:
-
Una status page pubblica con sito principale, API e webmail.
-
Una status page privata o interna con porte TCP, hostname di backend e servizi tecnici.
-
Una pagina dedicata a un singolo progetto, se vuoi offrire trasparenza agli utenti.
Se gestisci più servizi sullo stesso VPS, questa funzione ti consente di trasformare Uptime Kuma in una piccola pagina di stato professionale senza appoggiarti a servizi esterni.
Notifiche automatiche
Uptime Kuma supporta oltre 95 canali di notifica, tra cui Email SMTP, Telegram, Signal, Slack, Discord, Splunk, SendGrid, Twilio e Pushover. Questo significa che puoi ricevere un avviso appena un sito va giù, un VPS smette di rispondere o una porta TCP diventa irraggiungibile.
Il mio consiglio, in un progetto del genere, è configurare almeno:
-
Una notifica e-mail per gli alert principali.
-
Un canale Telegram o Discord per gli avvisi immediati.
-
Eventuali notifiche separate per i servizi più critici.
In questo modo la tua status page resta utile verso l’esterno, mentre tu continui a ricevere gli avvisi in tempo reale in privato.
Pubblicarlo dietro dominio
Il sito ufficiale segnala che Uptime Kuma può essere usato dietro proxy pubblici o reverse proxy come Cloudflare, Caddy, HAProxy, Traefik, Apache e Nginx. Se vuoi renderlo più elegante, puoi pubblicarlo su un sottodominio come status.tuodominio.it invece di usare direttamente la porta 3001.
Un esempio molto semplice con Nginx può essere questo:
server {
listen 80;
server_name status.tuodominio.it;
location / {
proxy_pass http://127.0.0.1:3001;
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;
}
}
Dopo aver verificato che tutto funziona, puoi aggiungere HTTPS con Let’s Encrypt e trasformare il progetto in una vera status page accessibile dall’esterno.
Aggiornare Uptime Kuma
Uno dei vantaggi di Docker Compose è che l’aggiornamento resta molto semplice. In generale ti basta rientrare nella cartella del progetto, scaricare la nuova immagine e riavviare il container mantenendo gli stessi dati persistenti.
cd /opt/stacks/uptime-kuma
docker compose pull
docker compose up -d
Questo approccio è molto simile a quello già usato nelle altre guide “Progetto” del sito basate su Docker Compose, dove si prepara una directory dedicata, si scrive il file YAML e poi si gestiscono gli aggiornamenti direttamente con pull e up -d.
Perché vale la pena
Uptime Kuma è particolarmente interessante perché unisce monitoraggio, grafici ping, notifiche, controllo dei certificati SSL, status page multiple e autenticazione a due fattori in un’unica interfaccia. Per un homelab, un VPS personale o un piccolo ecosistema di servizi self-hosted, è una soluzione molto pratica e decisamente più flessibile di molti servizi esterni gratuiti.
Con pochi minuti di configurazione puoi controllare:
-
Se un sito è online.
-
Se un VPS/Server risponde al ping.
-
Se una porta TCP è aperta.
-
Se un certificato SSL sta per scadere.
-
Se c’è stato un problema da comunicare agli utenti tramite status page.

