Installazione software · 13 min read · Nov 17, 2025
Come installare Kuma - Alternativa a Uptime Robot self-hosted su Ubuntu 20.04

Uptime-Kuma è uno strumento di monitoraggio open-source simile a “Uptime Robot” scritto in Nodejs. È uno strumento di monitoraggio self-hosted con un’interfaccia elegante e bella e supporta più metodi di notifica. Uptime-Kuma monitorerà il tempo di attività di host o server tramite i protocolli HTTP(s), TCP e Ping. Se gli host non possono essere raggiunti tramite questi protocolli a intervalli, gli host di uptime invieranno notifiche tramite Webhooks, Telegram, Discord, Gotify, Slack, Pushover, Email (SMTP), ecc.
In questa guida, imparerai come installare Uptime-Kuma su un server Ubuntu e utilizzare il server web Apache come reverse proxy con un certificato SSL gratuito di Let’s Encrypt davanti ad esso. Durante l’installazione, imparerai anche a installare nodejs tramite nvm (node version manager).
Requisiti
- Un server Ubuntu 20.04.
- Un utente con privilegi di root. Utilizzerai questo utente per installare nuovi pacchetti e modificare le impostazioni di sistema.
Aggiungere un nuovo utente
Per prima cosa, aggiungerai un nuovo utente al sistema Ubuntu. Per motivi di sicurezza, l’applicazione Uptime-Kuma verrà eseguita come utente non root.
- Aggiungi un nuovo utente eseguendo il comando qui sotto. Per questo esempio, utilizzeremo il nome utente “ johndoe “. Assicurati di cambiare il nome utente con il tuo.
useradd -m -s /bin/bash johndoeOpzioni che devi conoscere:
- -m = crea automaticamente la directory home per il nome utente, che sarà disponibile nella directory ‘/home’.
- -s = definisce il percorso della shell per l’utente, la maggior parte di Linux ha la shell
/bin/bash.
- Dopo, esegui il seguente comando per impostare la password per l’utente “johndoe”.
passwd johndoeOra digita una nuova password forte e ripetila, quindi premi “ Enter “ per confermare.
- Successivamente, aggiungi l’utente “johndoe” al gruppo “ sudo “ utilizzando il comando qui sotto.
usermod -aG sudo johndoeAggiungendo gli utenti al gruppo “ sudo “, consentirai agli utenti di eseguire il comando “sudo su” e ottenere i privilegi di root.
Installare NVM (Node Version Manager)
NVM o Node Version Manager è uno strumento da riga di comando per installare più versioni di nodejs su un sistema. Questo strumento ti consente di installare versioni specifiche di nodejs per le tue applicazioni, rendendo il tuo ambiente di sviluppo e distribuzione flessibile.
Per questa fase, installerai nvm sotto l’utente non root “johndoe”.
- Dalla tua shell root, accedi all’utente “johndoe” utilizzando il seguente comando.
su - johndoe- Scarica ed esegui lo script di installazione di nvm come segue.
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.38.0/install.sh | bash
- Dopo il successo, ricarica l’ambiente bash utilizzando il comando qui sotto.
source ~/.bashrc- Ora verifica l’installazione di “ nvm “ eseguendo il comando qui sotto.
command -v nvmSe la tua installazione ha avuto successo, vedrai il risultato “ nvm “. Altrimenti, non vedrai nulla o un risultato vuoto.
Ora esegui il comando nvm come segue.
nvm --helpE vedrai la pagina di aiuto manuale del comando nvm.
Node Version Manager (v0.38.0)
Nota: si riferisce a qualsiasi stringa simile a una versione che nvm comprende. Questo include:
- numeri di versione completi o parziali, che iniziano con un "v" opzionale (0.10, v0.1.2, v1)
- alias predefiniti (integrati): node, stable, unstable, iojs, system
- alias personalizzati che definisci con `nvm alias foo`
Qualsiasi opzione che produce output colorato dovrebbe rispettare l'opzione `--no-colors`.
Uso:
nvm --help Mostra questo messaggio
--no-colors Sopprimi l'output colorato
.....
Nota:
per rimuovere, eliminare o disinstallare nvm - basta rimuovere la cartella `$NVM_DIR` (di solito `~/.nvm`) Installare la versione LTS di Nodejs
Per installare l’applicazione uptime-Kuma, devi installare nodejs >= 14, git e pm2. Per questo punto, installerai l’ultima versione LTS di nodejs utilizzando il comando nvm.
- Esegui il comando nvm qui sotto per installare l’ultima versione LTS di nodejs.
nvm install --ltsUna volta che l’installazione ha avuto successo, vedrai un output simile a quello qui sotto.

La prima versione di nodejs che installi diventa la versione predefinita nel tuo ambiente di sviluppo.
- Ora esegui il seguente comando per verificare l’installazione di nodejs.
node --version
npm --versionSe la tua installazione ha avuto successo, vedrai un output simile a quello qui sotto.
# versione nodejs
v14.17.4
# versione npm
6.14.14Scaricare e installare Uptime-Kuma
A questo punto, sei pronto per installare l’applicazione Uptime-Kuma.
- Clona il codice sorgente di uptime-Kuma utilizzando il comando git qui sotto.
git clone https://github.com/louislam/uptime-kuma.git- Dopo, cambia la directory di lavoro in “ uptime-kuma/ “ ed esegui il comando npm per installare tutti i pacchetti necessari per uptime-kuma.
cd uptime-kuma/
npm run setupE vedrai un output simile a quello qui sotto.

Configurare Uptime-Kuma con pm2
Cos’è pm2? È un gestore di processi nodejs che ti aiuterà a gestire e mantenere la tua applicazione nodejs viva per sempre. pm2 ha alcune funzionalità integrate che rendono facile il deployment dell’applicazione nodejs, ti consente di monitorare lo stato della tua applicazione, i log e persino di impostare il file di servizio per la tua applicazione.
- Installa il pacchetto pm2 utilizzando il comando npm qui sotto.
npm install pm2- Una volta completata l’installazione, esegui il comando pm2 qui sotto per avviare l’applicazione uptime-kuma.
pm2 start npm --name uptime-kuma -- run start-server -- --port=3001 --hostname=127.0.0.1E vedrai i messaggi di output come qui sotto.

Come si vede nell’immagine, il nome dell’applicazione “ uptime-kuma “ è in esecuzione con lo stato “ online “.
- Per controllare lo stato della tua applicazione su pm2, esegui i seguenti comandi qui sotto.
Controlla lo stato dell’applicazione nodejs.
pm2 statusControlla i log dell’applicazione nodejs.
pm2 logs
Monitoraggio in tempo reale dell’applicazione nodejs.
pm2 monit
- Successivamente, esegui il seguente comando pm2 per generare il file di servizio per l’applicazione uptime-kuma.
pm2 startupDopo, dovresti eseguire il comando come ordinato nell’output.
sudo env PATH=$PATH:/home/johndoe/.nvm/versions/node/v14.17.4/bin /home/johndoe/.nvm/versions/node/v14.17.4/lib/node_modules/pm2/bin/pm2 startup systemd -u johndoe --hp /home/johndoeAssicurati di utilizzare il comando “ sudo “ e inserire la password corretta per il tuo utente per ottenere i privilegi di root.
Una volta completato il comando, vedrai il seguente output.

Come si vede nello screenshot, pm2 genera un servizio systemd basato sull’utente, per questo esempio è “ pm2-johndoe.service “.
Ora esegui il seguente comando per generare e salvare lo stato dell’applicazione uptime-kuma. Questo comando è importante per mantenere sempre in esecuzione l’applicazione uptime-kuma in background, anche dopo l’avvio del sistema.
pm2 save- Per verificare il servizio ‘ pm2-johndoe’, esegui il comando qui sotto.
sudo systemctl is-enabled pm2-johndoeVedrai l’output enabled, il che significa che l’applicazione uptime-kuma verrà eseguita automaticamente dopo l’avvio del sistema.
Inoltre, puoi provare a riavviare il tuo sistema e accedere di nuovo al server, quindi controllare il servizio uptime-kuma.
sudo systemctl status pm2-johndoeDovresti vedere un output simile a quello qui sotto.
? pm2-johndoe.service - Gestore di processi PM2
Loaded: loaded (/etc/systemd/system/pm2-johndoe.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-08-10 01:52:37 UTC; 3min 57s ago
Docs: https://pm2.keymetrics.io/
Main PID: 745 (PM2 v5.1.0: God)
Tasks: 34 (limit: 2343)
Memory: 120.4M
CGroup: /system.slice/pm2-johndoe.service
??745 PM2 v5.1.0: God Daemon (/home/johndoe/.pm2)
??772 npm
??873 sh -c node server/server.js "--port=3001" "--hostname=127.0.0.1"
??874 node server/server.js --port=3001 --hostname=127.0.0.1
Aug 10 01:52:36 ubuntu64 pm2[633]: [PM2] Spawning PM2 daemon with pm2_home=/home/johndoe/.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] PM2 Successfully daemonized
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Resurrecting
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Restoring processes located in /home/johndoe/.pm2/dump.pm2
Aug 10 01:52:37 ubuntu64 pm2[633]: [PM2] Process /home/johndoe/.nvm/versions/node/v14.17.4/bin/npm restoredIl “ pm2-johndoe.service “ è attivo e funzionante all’avvio del sistema.
Configurare Apache come Reverse Proxy
Per questa guida, installerai e configurerai il server web Apache come reverse proxy per l’applicazione uptime-Kuma.
- Esegui il seguente comando per installare i pacchetti del server web apache.
sudo apt install apache2Digita “y” e premi “ Enter “ per installare il server web apache.
- Dopo, abilita alcuni moduli apache utilizzando il comando qui sotto.
sudo a2enmod ssl proxy proxy_ajp proxy_wstunnel proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html- Successivamente, crea una nuova configurazione di virtual-host ‘ uptime-kuma.conf ‘ utilizzando il comando dell’editor nano qui sotto.
sudo nano /etc/apache2/sites-available/uptime-kuma.confIncolla la seguente configurazione nel tuo terminale e cambia il nome di dominio “ uptime.example.net “ con il tuo dominio come “ domain.com “.
ServerName uptime.example.net
ProxyPass / http://localhost:3001/
RewriteEngine on
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteCond %{HTTP:Connection} upgrade [NC]
RewriteRule ^/?(.*) "ws://localhost:3001/$1" [P,L]
Premi “ Ctrl+x “ e digita “ Y “ per salvare la configurazione.
- Ora attiva la configurazione del virtual-host apache “uptime-kuma” utilizzando il comando qui sotto.
sudo a2ensite uptime-kumaDopo, esegui il seguente comando per verificare la configurazione di apache e assicurati di non avere errori.
sudo apachectl configtest- Ora applica la nuova configurazione riavviando il servizio apache utilizzando il comando qui sotto.
sudo systemctl restart apache2
Sicurezza di Uptime-kuma con SSL Letsencrypt
Per garantire l’accesso a Uptime-Kuma, configurerai l’SSL di Letsencrypt per il server web apache.
- Prima di tutto, installa lo strumento certbot eseguendo il seguente comando.
sudo apt install python3-certbot-apacheDigita “ y “ e premi “ Enter “ per avviare l’installazione.
- Dopo l’installazione, genera l’SSL Let’s encrypt utilizzando il comando certbot come qui sotto.
sudo certbot --apache yourdomain.comDigita il tuo indirizzo email per registrarti a Letsencrypt e premi “ Enter “ per continuare. Letsencrypt ti invierà email al tuo indirizzo email ogni volta che i tuoi certificati SSL scadranno.
Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter ‘c’ to
cancel): [email protected]
Per i TOS (Termini di Servizio) di Letsencrypt, digita " A " per accettare e premi " Enter " per continuare.
- Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- Please read the Terms of Service at
- (A)gree/(C)ancel: AWould you be willing to share your email address with the Electronic Frontier
Per la condivisione dell'email con l'EFF (Electronic Frontier Foundation), puoi digitare " Y " per sì e " N " per no. Per questo esempio, non condivideremo un indirizzo email con l'EFF.
Foundation, a founding partner of the Let’s Encrypt project and the non-profit
organization that develops Certbot? We’d like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- (A)gree/(C)ancel: A
- (Y)es/(N)o: N
Ora lo strumento certbot genererà SSL Letsencrypt per il nome di dominio Uptime-Kuma. Inoltre, aggiungerà alcune configurazioni aggiuntive per la configurazione del virtual host apache. Ti verrà chiesto di impostare il reindirizzamento automatico da HTTP a HTTPS. Digita il numero "2" per impostare il reindirizzamento automatico di apache da HTTP a HTTPS e premi " Enter ".Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
- (Y)es/(N)o: N
Una volta completato con successo il processo di distribuzione, vedrai un output simile a quello qui sotto.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://uptime.example.net
You should test your configuration at:
https://www.ssllabs.com/ssltest/analyze.html?d=uptime.example.net
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/uptime.example.net/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/uptime.example.net/privkey.pem
Your cert will expire on 2021-10-10. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
- We were unable to subscribe you the EFF mailing list because your
e-mail address appears to be invalid. You can try again later by
visiting https://act.eff.org.Verificare l’installazione di Uptime-Kuma
- Apri il tuo browser web e digita l’URL di installazione di Uptime-Kuma nella barra degli indirizzi.
Verrai reindirizzato alla connessione sicura HTTPS.
- Crea un nuovo utente admin per Uptime-kuma nella prima pagina. Digita il tuo utente admin e la password, quindi fai clic sul pulsante “ Crea “.

- Dopo, accedi con il tuo nuovo nome utente e password, quindi fai clic sul pulsante “ Login “.

Ora vedrai il dashboard di uptime-kuma.
- Per aggiungere un nuovo host al monitor, fai clic sul pulsante “ Aggiungi nuovo monitor “.

- Per questo esempio, monitorerai il sito web, quindi scegli il “ Tipo di monitor “ come “ HTTP(s) “, digita l’indirizzo URL del sito web, fai clic su “ Configura notifica “ per il supporto delle notifiche, e poi fai clic sul pulsante “ Salva “ in fondo alla pagina.

- Verrai reindirizzato al dashboard di uptime-Kuma e vedrai il tuo host nella pagina del dashboard.

Di seguito è un altro esempio dopo aver aggiunto il nuovo tipo “ TCP/IP “ con porte chiuse, e il risultato è “ ENCONNREFUSED “ o errore di connessione perché la porta è rifiutata/chiusa.

Conclusione
Congratulazioni! Hai installato con successo Uptime-Kuma con il server web Apache come reverse proxy e hai protetto il deployment di Uptime-Kuma con SSL Letsencrypt. Per la fase successiva, puoi aggiungere i tuoi host e attivare le notifiche per qualsiasi incidente di inattività.
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.