Che cos'è Uptime Kuma?

Uptime Kuma è uno strumento di monitoraggio self-hosted. Controlla a intervalli regolari siti web, porte TCP, record DNS, container Docker e altro ancora, invia una notifica quando qualcosa non è disponibile e può pubblicare pagine di stato. Il progetto fornisce un'immagine ufficiale, louislam/uptime-kuma, che ascolta sulla porta 3001 e conserva tutto nella cartella /app/data.

Descrizione dello strumento

Questo strumento crea un file compose.yaml per Uptime Kuma. Parte dal file presente nel repository di Uptime Kuma e aggiunge le impostazioni di cui gli utenti hanno generalmente bisogno: la versione e la variante dell'immagine, la porta dell'host e l'indirizzo di bind, la posizione in cui vengono archiviati i dati, l'accesso al socket Docker per i monitor degli host Docker e il database. Quando si sceglie un database MariaDB nel proprio container, lo strumento aggiunge un secondo servizio con un controllo dello stato, in modo che Uptime Kuma venga avviato solo quando il database è pronto. Le impostazioni per le quali il modulo non dispone di un campo possono essere aggiunte come variabili d'ambiente. Tutto viene creato nel browser.

Funzionalità

  • I tag dell'immagine 2, 1 e beta, con le varianti standard, slim, rootless e slim rootless della versione 2
  • La porta dell'host e un indirizzo di bind come 127.0.0.1, per l'utilizzo dietro un reverse proxy
  • Una cartella dei dati sull'host o un volume Docker denominato, dichiarato automaticamente
  • L'accesso opzionale a /var/run/docker.sock per i monitor degli host Docker, con un avviso sulle autorizzazioni concesse
  • SQLite, il MariaDB integrato, un container MariaDB aggiunto al file oppure un server MariaDB esterno
  • Una password del database generata automaticamente, con i simboli $ sottoposti a escape affinché Compose li conservi
  • Opzioni per l'incorporamento in un iframe, il controllo dell'origine WebSocket e un token Cloudflare Tunnel
  • Qualsiasi altra variabile d'ambiente, commenti che spiegano il file e il download come compose.yaml

Esempi

Le impostazioni predefinite producono lo stesso file presente nel repository di Uptime Kuma:

services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
    restart: unless-stopped

La scelta di un container MariaDB come database aggiunge un servizio mariadb e collega Uptime Kuma a esso tramite UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME e le altre variabili UPTIME_KUMA_DB_*.

Suggerimenti

  • Salva il risultato come compose.yaml in una cartella vuota e avvialo con docker compose up -d. Poi apri http://localhost:3001
  • I file system come NFS non sono supportati per la cartella dei dati. Usa una cartella locale o un volume Docker
  • Le immagini slim non includono Chromium, necessario per il monitor del browser reale, e non includono il MariaDB integrato
  • Le immagini rootless vengono eseguite come utente node con UID 1000, quindi una cartella dei dati sull'host deve essere scrivibile da tale utente
  • Uptime Kuma usa WebSockets. Quando lo utilizzi dietro un reverse proxy, il proxy deve inoltrare gli header Upgrade e Connection
  • Il socket Docker dà a Uptime Kuma il pieno controllo di Docker sull'host. Montalo solo quando ti servono i monitor degli host Docker e non esporre Uptime Kuma su Internet
  • La versione 1 supporta solo SQLite, quindi le opzioni del database sono nascoste per questa versione
  • I campi delle password vengono inseriti nel file in testo normale. Mantieni privato il file oppure sposta la password in un file .env e fai riferimento a essa come ${DB_PASSWORD}