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.

  1. 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 johndoe

Opzioni 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.
  1. Dopo, esegui il seguente comando per impostare la password per l’utente “johndoe”.
passwd johndoe

Ora digita una nuova password forte e ripetila, quindi premi “ Enter “ per confermare.

  1. Successivamente, aggiungi l’utente “johndoe” al gruppo “ sudo “ utilizzando il comando qui sotto.
usermod -aG sudo johndoe

Aggiungendo 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”.

  1. Dalla tua shell root, accedi all’utente “johndoe” utilizzando il seguente comando.
su - johndoe
  1. 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

Installa Nodejs version Manager o NVM

  1. Dopo il successo, ricarica l’ambiente bash utilizzando il comando qui sotto.
source ~/.bashrc
  1. Ora verifica l’installazione di “ nvm “ eseguendo il comando qui sotto.
command -v nvm

Se 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 --help

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

  1. Esegui il comando nvm qui sotto per installare l’ultima versione LTS di nodejs.
nvm install --lts

Una volta che l’installazione ha avuto successo, vedrai un output simile a quello qui sotto.

Installazione di Nodejs con NVM

La prima versione di nodejs che installi diventa la versione predefinita nel tuo ambiente di sviluppo.

  1. Ora esegui il seguente comando per verificare l’installazione di nodejs.
node --version  
npm --version

Se la tua installazione ha avuto successo, vedrai un output simile a quello qui sotto.

# versione nodejs  
v14.17.4  
  
# versione npm  
6.14.14

Scaricare e installare Uptime-Kuma

A questo punto, sei pronto per installare l’applicazione Uptime-Kuma.

  1. Clona il codice sorgente di uptime-Kuma utilizzando il comando git qui sotto.
git clone https://github.com/louislam/uptime-kuma.git
  1. 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 setup

E vedrai un output simile a quello qui sotto.

Installazione dei pacchetti per Uptime-Kuma

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.

  1. Installa il pacchetto pm2 utilizzando il comando npm qui sotto.
npm install pm2
  1. 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.1

E vedrai i messaggi di output come qui sotto.

Avvia Uptime-Kuma con il gestore di processi pm2

Come si vede nell’immagine, il nome dell’applicazione “ uptime-kuma “ è in esecuzione con lo stato “ online “.

  1. Per controllare lo stato della tua applicazione su pm2, esegui i seguenti comandi qui sotto.

Controlla lo stato dell’applicazione nodejs.

pm2 status

Controlla i log dell’applicazione nodejs.

pm2 logs

Controlla i log dell'applicazione pm2

Monitoraggio in tempo reale dell’applicazione nodejs.

pm2 monit

Monitoraggio dell'applicazione in tempo reale pm2

  1. Successivamente, esegui il seguente comando pm2 per generare il file di servizio per l’applicazione uptime-kuma.
pm2 startup

Dopo, 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/johndoe

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

pm2 genera il file di servizio systemd per Uptime-Kuma

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
  1. Per verificare il servizio ‘ pm2-johndoe’, esegui il comando qui sotto.
sudo systemctl is-enabled pm2-johndoe

Vedrai 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-johndoe

Dovresti 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 restored

Il “ 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.

  1. Esegui il seguente comando per installare i pacchetti del server web apache.
sudo apt install apache2

Digita “y” e premi “ Enter “ per installare il server web apache.

  1. 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
  1. 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.conf

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

  1. Ora attiva la configurazione del virtual-host apache “uptime-kuma” utilizzando il comando qui sotto.
sudo a2ensite uptime-kuma

Dopo, esegui il seguente comando per verificare la configurazione di apache e assicurati di non avere errori.

sudo apachectl configtest
  1. Ora applica la nuova configurazione riavviando il servizio apache utilizzando il comando qui sotto.
sudo systemctl restart apache2

Configura Apache come reverse proxy per uptime-kuma

Sicurezza di Uptime-kuma con SSL Letsencrypt

Per garantire l’accesso a Uptime-Kuma, configurerai l’SSL di Letsencrypt per il server web apache.

  1. Prima di tutto, installa lo strumento certbot eseguendo il seguente comando.
sudo apt install python3-certbot-apache

Digita “ y “ e premi “ Enter “ per avviare l’installazione.

  1. Dopo l’installazione, genera l’SSL Let’s encrypt utilizzando il comando certbot come qui sotto.
sudo certbot --apache yourdomain.com

Digita 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.
                                                                                • (A)gree/(C)ancel: A
                                                                                  
                                                                                  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.
                                                                                  
                                                                                  Would you be willing to share your email address with the Electronic Frontier
                                                                                  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.
                                                                                • (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

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

  1. Apri il tuo browser web e digita l’URL di installazione di Uptime-Kuma nella barra degli indirizzi.

https://uptime.example.net/

Verrai reindirizzato alla connessione sicura HTTPS.

  1. 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 “.

Crea utente admin uptime-kuma

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

pagina di accesso uptime-kuma

Ora vedrai il dashboard di uptime-kuma.

  1. Per aggiungere un nuovo host al monitor, fai clic sul pulsante “ Aggiungi nuovo monitor “.

dashboard uptime-kuma aggiungi monitor

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

Aggiungi host al monitor uptime-kuma

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

dashboard uptime-kuma

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.

dashboard di monitoraggio uptime-kuma

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

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.