Wat is Uptime Kuma?

Uptime Kuma is een zelfgehoste monitoringtool. De tool controleert regelmatig websites, TCP-poorten, DNS-records, Docker-containers en meer, stuurt een melding wanneer iets uitvalt en kan statuspagina's publiceren. Het project biedt een officiële image, louislam/uptime-kuma, die luistert op poort 3001 en alles opslaat in een map /app/data.

Beschrijving van de tool

Deze tool maakt een compose.yaml voor Uptime Kuma. De tool gebruikt het bestand uit de Uptime Kuma-repository als uitgangspunt en voegt de instellingen toe die mensen meestal nodig hebben: de image-versie en -variant, de hostpoort en het bindadres, de locatie waar de gegevens worden opgeslagen, toegang tot de Docker-socket voor Docker-hostmonitors en de database. Bij gebruik van MariaDB in een eigen container voegt de tool een tweede service met een healthcheck toe, zodat Uptime Kuma pas start wanneer de database gereed is. Instellingen waarvoor het formulier geen veld heeft, kunnen als omgevingsvariabelen worden toegevoegd. Alles wordt in je browser gemaakt.

Functies

  • De image-tags 2, 1 en beta, met de varianten standard, slim, rootless en slim rootless van versie 2
  • Hostpoort en een bindadres zoals 127.0.0.1 voor gebruik achter een reverse proxy
  • Een gegevensmap op de host of een benoemd Docker-volume, dat voor je wordt gedeclareerd
  • Optionele toegang tot /var/run/docker.sock voor Docker-hostmonitors, met een waarschuwing over wat deze toegang toestaat
  • SQLite, de ingebouwde MariaDB, een MariaDB-container die aan het bestand wordt toegevoegd, of een externe MariaDB-server
  • Een gegenereerd databasewachtwoord, waarbij $-tekens worden geescaped zodat Compose ze behoudt
  • Opties voor insluiting in een iframe, de controle van de WebSocket-origin en een Cloudflare Tunnel-token
  • Elke andere omgevingsvariabele, opmerkingen die het bestand toelichten en een download als compose.yaml

Voorbeelden

De standaardinstellingen leveren hetzelfde bestand op als het bestand in de Uptime Kuma-repository:

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

Als je een MariaDB-container als database kiest, wordt een mariadb-service toegevoegd en wordt Uptime Kuma ermee verbonden via UPTIME_KUMA_DB_TYPE, UPTIME_KUMA_DB_HOSTNAME en de andere variabelen van UPTIME_KUMA_DB_*.

Tips

  • Sla het resultaat op als compose.yaml in een lege map en start het met docker compose up -d. Open vervolgens http://localhost:3001
  • Bestandssystemen zoals NFS worden niet ondersteund voor de gegevensmap. Gebruik een lokale map of een Docker-volume
  • Slim-images bevatten geen Chromium, dat nodig is voor de echte browsermonitor, en bevatten ook geen ingebouwde MariaDB
  • Rootless-images worden uitgevoerd als de gebruiker node met UID 1000. Een gegevensmap op de host moet daarom schrijfbaar zijn voor die gebruiker
  • Uptime Kuma gebruikt WebSockets. Wanneer je het achter een reverse proxy plaatst, moet de proxy de headers Upgrade en Connection doorgeven
  • De Docker-socket geeft Uptime Kuma volledige controle over Docker op de host. Koppel deze alleen wanneer je Docker-hostmonitors nodig hebt en stel Uptime Kuma niet bloot aan het internet
  • Versie 1 ondersteunt alleen SQLite, dus de databaseopties worden daarvoor verborgen
  • Wachtwoordvelden komen als platte tekst in het bestand terecht. Houd het bestand privé of verplaats het wachtwoord naar een .env-bestand en verwijs ernaar als ${DB_PASSWORD}