Salta ai contenuti

Uptime Kuma

Strumento di monitoraggio del tempo di attività self-hosted con supporto per HTTP, TCP, DNS, Docker e 90+ servizi di notifica inclusi Slack, Discord e Telegram.

# Eseguire Uptime Kuma con archiviazione persistente
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2

# Accedere su http://localhost:3001
# Vincolamento solo a localhost (nessun accesso esterno)
docker run -d \
  --restart=always \
  -p 127.0.0.1:3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# Scaricare il file di composizione ufficiale
mkdir uptime-kuma && cd uptime-kuma
curl -o compose.yaml \
  https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml

# Avviare il servizio
docker compose up -d

# Accedere su http://localhost:3001
# Montare il socket Docker per il monitoraggio della salute del container
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# Requisiti: Node.js 20.4+, Git

# Clonare e configurare
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# Avviare direttamente
node server/server.js

# O utilizzare PM2 per l'operazione in background
npm install -g pm2
pm2 start server/server.js --name uptime-kuma
CommandDescription
docker run -d -p 3001:3001 louislam/uptime-kuma:2Avviare il container Uptime Kuma
docker compose up -dAvviare con Docker Compose
docker compose downInterrompere tutti i servizi
docker compose logs -fSeguire i log dei container
docker restart uptime-kumaRiavviare il container
docker stop uptime-kumaInterrompere il container
docker start uptime-kumaAvviare il container interrotto
node server/server.jsAvviare senza Docker
pm2 start server/server.js --name uptime-kumaAvviare con PM2
pm2 restart uptime-kumaRiavviare con PM2
pm2 stop uptime-kumaInterrompere con PM2
pm2 logs uptime-kumaVisualizzare i log PM2
# Estrarre l'immagine più recente
docker pull louislam/uptime-kuma:2

# Interrompere e rimuovere il container attuale
docker stop uptime-kuma
docker rm uptime-kuma

# Ricreare con la nuova immagine (i dati persistono nel volume)
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# Estrarre e ricreare
docker compose pull
docker compose up -d
cd uptime-kuma
git fetch --all
git checkout 2.1.3 --force
npm install --production
npm run download-dist
pm2 restart uptime-kuma
TypeDescription
HTTP(S)Monitorare la disponibilità del sito web e il tempo di risposta
HTTP(S) KeywordVerificare il testo specifico nel corpo della risposta
HTTP(S) JSON QueryConvalidare i valori della risposta JSON
TCP PortVerificare se una porta TCP è aperta e reattiva
PingPing ICMP per la disponibilità dell’host
DNSMonitorare la risoluzione dei record DNS
Docker ContainerMonitorare lo stato di salute del container
Steam Game ServerVerificare la disponibilità del server di gioco
MQTTMonitorare la connettività del broker MQTT
gRPCMonitorare la salute del servizio gRPC
RadiusControllo del server di autenticazione RADIUS
GameDigMonitoraggio del server di gioco (protocolli multipli)
PushMonitoraggio passivo tramite endpoint heartbeat
GroupRaggruppamento logico dei monitor
ServiceDescription
SlackWebhook dei canali e notifiche bot
DiscordNotifiche dei canali basate su webhook
TelegramNotifiche API bot
Microsoft TeamsNotifiche del webhook in ingresso
MattermostIntegrazione della chat self-hosted
Rocket.ChatNotifiche webhook
Google ChatNotifiche webhook dello spazio
MatrixNotifiche della chat decentralizzata
ServiceDescription
PushoverNotifiche push mobile
GotifyServer push self-hosted
ntfyNotifiche pub/sub basate su HTTP
PushbulletNotifiche push cross-device
SignalNotifiche di messaggistica sicura
LINEIntegrazione di LINE Notify
ServiceDescription
PagerDutyAvviso di incidenti e on-call
OpsgenieGestione degli avvisi e escalation
SquadcastGestione degli incidenti
Splunk On-CallInstradamento degli avvisi VictorOps
Better StackTempo di attività e gestione degli incidenti
ServiceDescription
SMTP EmailNotifiche email personalizzate
WebhookChiamate degli endpoint HTTP personalizzate
Home AssistantTrigger di automazione della casa intelligente
AppriseGateway di notifiche universale
VariableDescriptionDefault
UPTIME_KUMA_PORTPorta del server3001
UPTIME_KUMA_HOSTIndirizzo di binding::
DATA_DIRDirectory di archiviazione dei dati./data
TZFuso orarioUTC
UMASKMaschera dei permessi del file0000
NODE_EXTRA_CA_CERTSPercorso dei certificati CA personalizzati
SSL_CERTPercorso del certificato SSL
SSL_KEYPercorso della chiave privata SSL
FeatureDescription
Multiple PagesCreare pagine di stato separate per servizi diversi
Custom DomainsMappare le pagine di stato a nomi di dominio personalizzati
Custom CSSPersonalizzare le pagine di stato con CSS personalizzato
Incident PostsCreare rapporti di incidenti visibili nella pagina di stato
MaintenancePianificare le finestre di manutenzione
Monitor GroupsOrganizzare i monitor in gruppi nella pagina di stato
# Installare il client API Python
pip install uptime-kuma-api
OperationDescription
Add monitorCreare i monitor a livello di programmazione
Edit monitorAggiornare la configurazione del monitor
Delete monitorRimuovere i monitor
Pause/ResumeAttivare/disattivare lo stato del monitor
Get statusRecuperare lo stato attuale del monitor
Add notificationConfigurare i provider di notifica
Get uptimeInterrogare le statistiche di tempo di attività
# compose.yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
      # Facoltativo: Monitoraggio del container Docker
      # - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - TZ=UTC
FeatureDescription
2FAAutenticazione a due fattori per l’accesso
Reverse ProxyDistribuzione dietro Nginx, Caddy o Traefik
SSL/TLSSSL integrato o terminazione del proxy inverso
Login Rate LimitingProtezione del brute-force
API KeysAccesso all’API basato su token
server {
    listen 443 ssl;
    server_name status.example.com;

    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        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;
    }
}
CommandDescription
docker cp uptime-kuma:/app/data ./backupBackup della directory dei dati
docker cp ./backup/. uptime-kuma:/app/dataRipristino dal backup
docker volume inspect uptime-kumaTrovare il punto di montaggio del volume
IssueSolution
Impossibile accedere all’interfaccia utenteVerificare il binding della porta: docker port uptime-kuma
Errori di volume NFSUtilizzare le directory locali, non i file system di rete
Errori WebSocketConfigurare il proxy inverso per l’aggiornamento WebSocket
Container non avviatoVerificare i log: docker logs uptime-kuma
Persistenza dei dati persaAssicurarsi che il volume -v uptime-kuma:/app/data sia utilizzato
Monitoraggio Docker non riuscitoMontare docker.sock: -v /var/run/docker.sock:/var/run/docker.sock:ro
PlatformStatus
Linux (x64, ARM)Supported
Windows 10+ (x64)Supported
macOSSupported
Docker DesktopSupported
KubernetesVia Docker image
FreeBSD/OpenBSDNot supported
Replit/HerokuNot supported
  • Utilizzare i volumi Docker (non bind mount per NFS) per la persistenza dei dati
  • Distribuire dietro un proxy inverso con terminazione SSL per l’uso in produzione
  • Abilitare 2FA per l’account amministratore immediatamente dopo il primo accesso
  • Impostare gli intervalli di monitoraggio su 60 secondi o più per i servizi esterni
  • Utilizzare il tipo di monitor Push per i servizi dietro i firewall
  • Configurare almeno 2 canali di notifica per la ridondanza
  • Creare pagine di stato separate per il pubblico interno e esterno
  • Eseguire il backup della directory dei dati regolarmente — contiene tutta la configurazione
  • Impostare il fuso orario tramite la variabile di ambiente TZ in modo che corrisponda al vostro centro operativo