GuiderFöretag och övervakningDriftkoll med Uptime Kuma

Övervaka dina webbplatser med Uptime Kuma och Podman utan root

Uptime Kuma 2 på Debian 13 i sin rootless-avbild, i Podman under en egen användare bakom Caddy, som kontrollerar dina webbplatser och servrar varje minut och skickar ett larm till Matrix när något går ner.

Testad på Uptime Kuma 2.5.5 på Debian 13 (trixie) på en server hos Melonslab Uppdaterad 26 september 2026

Rekommenderad server för guiden

VC-S Micro · 2 vCPU · 8 GB Minne · 250 GB Lagring

Månadsvis, ingen bindningstid 7 dagars öppet köp

90 kr/mån

Beställ nu
På den här sidan

Det här sätter du upp

Uptime Kuma kontrollerar dina webbplatser och servrar varje minut, visar hur länge var och en har varit uppe, varnar innan ett certifikat går ut och larmar när något går ner, via Matrix, e-post, Telegram, ntfy och många andra kanaler.

Här körs den från sin officiella rootless-avbild, i Podman under en egen användare som heter kuma, bakom Caddy från Podman-guiden. Larmen går till ett rum på Matrix-servern från Matrix-guiden.

Varje steg nedan har körts på en server hos Melonslab med Debian 13:

  • Uptime Kuma 2.5.5 kontrollerade en extern webbplats och en app på samma server, pingade Quad9 och visade alla tre som uppe, med utgångsdatumet för webbplatsens certifikat.
  • När en webbapp på servern stoppades skrev Kuma ett Down-larm i ett Matrix-rum, och ett Up-larm när den kom tillbaka.
  • Kuma loggade varje inloggning med besökarens riktiga adress, och allt startade igen av sig självt efter en omstart av servern.

Uptime Kuma använde omkring 130 MB minne.

En bevakning på samma server som webbplatserna den övervakar kan inte tala om för dig att själva servern har gått ner. För det kör du Uptime Kuma på en annan server och pekar den mot den här.

Innan du börjar

Du behöver:

  • en server uppsatt som i Podman-guiden, med Caddy igång;
  • en A-post och en AAAA-post för status.example.com som pekar på din server;
  • för larm i Matrix, en Matrix-server som i Matrix-guiden, och ett eget konto på den.

Exemplen använder status.example.com för Uptime Kuma, matrix.example.com för Matrix-servern och @anna:example.com för ditt eget Matrix-konto. Byt ut dem genomgående.

1. Skapa användaren

Som root:

useradd -m -s /bin/bash kuma
loginctl enable-linger kuma
machinectl shell kuma@

Allt fram till steg 4 körs som kuma.

2. Låt Kuma nå den här servern

En rootless-container delar normalt serverns egna adresser, så en kontroll av en app på den här servern, som https://matrix.example.com, skulle nå själva containern i stället för Caddy. Ge den här användarens containrar egna adresser i stället. Skapa ~/.config/containers/containers.conf:

[network]
# Give containers their own address, so that the server's public address, and the apps behind Caddy, can be reached from them.
pasta_options = ["-a", "10.0.2.0", "-n", "24", "-g", "10.0.2.2", "--dns-forward", "10.0.2.3", "-a", "fd00::2", "-g", "fd00::1"]

Den första delen ger containern en IPv4-adress, 10.0.2.0, och den andra en privat IPv6-adress, fd00::2. Kontroller mot internet, över IPv4 och IPv6, fungerar som förut.

3. Definiera containern

mkdir -p ~/.config/containers/systemd

Skapa ~/.config/containers/systemd/uptime-kuma.container:

[Unit]
Description=Uptime Kuma

[Container]
ContainerName=uptime-kuma
Image=docker.io/louislam/uptime-kuma:2-rootless
Volume=uptime-kuma:/app/data
# Only Caddy, on this server, can reach Uptime Kuma: the port is not open to the internet.
PublishPort=127.0.0.1:8095:3001
# ping needs raw sockets
AddCapability=NET_RAW
AutoUpdate=registry

[Service]
Restart=always

[Install]
WantedBy=default.target

Avbilden 2-rootless kör Uptime Kuma som en vanlig användare även inne i containern, och taggen följer varje version av Uptime Kuma 2. NET_RAW låter dess ping-kontroller skicka ICMP, bara i containerns eget nätverk.

Starta den:

systemctl --user daemon-reload
systemctl --user start uptime-kuma
systemctl --user enable --now podman-auto-update.timer

4. Sätt Caddy framför

Gå tillbaka till root med exit, byt till machinectl shell caddy@ och lägg till det här blocket sist i ~/Caddyfile:

status.example.com {
    reverse_proxy 127.0.0.1:8095
}

Starta om Caddy med systemctl --user restart caddy.

5. Sätt upp den

Öppna https://status.example.com. Uptime Kuma frågar först vilken databas den ska använda: välj SQLite, en enda fil i dess volym, som räcker för några dussin bevakningar, och Next. Skapa sedan ditt konto med Username, Password och Repeat Password, och välj Create.

Låt sedan Kuma se besökarnas riktiga adresser bakom Caddy: öppna profilmenyn uppe till höger, sedan Settings, Reverse Proxy, sätt Trust Proxy till Yes och välj Save. Under Security i samma inställningar kan du också slå på tvåfaktorsautentisering för ditt konto.

6. Lägg till bevakningar

Välj Add New Monitor. De du kommer använda mest:

  • HTTP(s), för en webbplats eller webbapp: ett Friendly Name och URL. Kuma följer också webbplatsens certifikat och varnar 21, 14 och 7 dagar innan det går ut.
  • Ping, för en server: dess Hostname eller adress.
  • TCP Port, för en tjänst som e-post eller SSH: ett värdnamn och en port.

Välj Save. Kuma kör varje bevakning var 60:e sekund, och intervallet ändrar du med Heartbeat Interval.

7. Få larm i Matrix

Kuma skriver sina larm med ett eget Matrix-konto. Som root byter du till machinectl shell matrix@ och skapar det. Svara no på frågan om administratör:

podman exec -it matrix-synapse register_new_matrix_user -c /data/homeserver.yaml http://localhost:8008

Döp det till kumabot. Logga sedan in som det från valfri dator för att få dess åtkomsttoken, med lösenordet du just valde i stället för BOT_PASSWORD:

curl -s -X POST https://matrix.example.com/_matrix/client/v3/login \
  -H 'Content-Type: application/json' \
  -d '{"type": "m.login.password", "identifier": {"type": "m.id.user", "user": "kumabot"}, "password": "BOT_PASSWORD", "initial_device_display_name": "Uptime Kuma"}'

Kopiera värdet av access_token och använd det i stället för ACCESS_TOKEN för att skapa ett rum för larmen, med dig själv inbjuden:

curl -s -X POST https://matrix.example.com/_matrix/client/v3/createRoom \
  -H 'Authorization: Bearer ACCESS_TOKEN' -H 'Content-Type: application/json' \
  -d '{"name": "Alerts", "invite": ["@anna:example.com"], "preset": "private_chat"}'

Svaret innehåller rummets room_id, som börjar med !. Godkänn inbjudan i Element. Öppna sedan Settings, Notifications i Uptime Kuma och välj Set Up Notification:

  • Sätt Notification Type till Matrix och ge den ett Friendly Name.
  • Ange https://matrix.example.com som Homeserver URL, room_id som Internal Room ID och token som Access Token.
  • Slå på Default enabled, så att nya bevakningar använder den, och Apply on all existing monitors.
  • Välj Test. Ett testmeddelande kommer i rummet. Välj sedan Save.

Från och med nu skriver Kuma ett meddelande som [Zabbix] [🔴 Down] Request failed with status code 502 när en bevakning går ner, och ett till när den är uppe igen. Kontot kan bara skriva i rummen det är med i, och rummet är inte krypterat, så håll larmen fria från hemligheter. För e-post eller en annan tjänst väljer du den som Notification Type i stället.

8. Säkerhetskopiera

Som kuma:

mkdir -p ~/backup
systemctl --user stop uptime-kuma
podman volume export uptime-kuma --output ~/backup/uptime-kuma.tar
systemctl --user start uptime-kuma

Säkerhetskopian innehåller bevakningarna, deras historik, ditt konto och inställningarna för larmkanaler, med Matrix-token. Kopiera ~/backup till en annan maskin och förvara den säkert.

Felsökning

En ping-bevakning är nere med spawn EPERM. Raden AddCapability=NET_RAW från steg 3 saknas.

En bevakning av en app på den här servern visas som nere, trots att appen fungerar i webbläsaren. containers.conf från steg 2 saknas, eller skapades efter att containern startade: starta om den med systemctl --user restart uptime-kuma.

Inga larm kommer fram. Larmkanalen är inte påslagen för den bevakningen. Redigera bevakningen och markera larmkanalen under Notifications, eller redigera larmkanalen och slå på Apply on all existing monitors.

Kör det på din egen server

VC-S Micro

90 kr/mån

vCPU
2
Minne
8 GB
Lagring
250 GB
Trafik
10 TB
Standard
HDD · RAID 10
  • Full root-åtkomst
  • Nativt /64 IPv6
  • RAID-skyddad lagring
  • Malmö, Sverige
  • Månadsvis, ingen bindningstid
  • 7 dagars öppet köp
Alla guider