Uptime Kuma

Uptime Kuma

Service Monitoring


Homelab
uptime-kuma containers homelab

I was watching TechnoTim and saw a cool video he had on Uptime Kuma. I decided I wanted to set up my own instance of Uptime Kuma for the following reasons:

  1. I wanted to receive notifications if any of my services were down
  2. I wanted to be able to have a live feed of my services I could display publicly

Here’s the code I used:

  • version: '2'
    services:
      uptime-kuma:
        image: louislam/uptime-kuma:1
        container_name: uptime-kuma
        volumes:
          - ./data:/app/data
        ports:
          - 3001:3001
        restart: unless-stopped

Setup was relatively simple. I also enabled 2FA, and added my services one at a time through the Web UI. A few of the services had issues with HTTP(s), so I used Ping instead. I also had to use TCP Port for my Jellyfin and Tdarr instances. Additionally, when I set up the status page, my Minecraft Clickable Links pointed to my nextcloud instance for some reason.

I also added the following code to my kuma.cameronkrischel.org entry in Nginx Reverse Proxy Manager:

  • location /status/homelab/ {
        proxy_pass http://<Podman IP>:3001/status/homelab;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        allow all;
    }
    location /api/status-page/heartbeat/homelab {
        proxy_pass http://<Podman IP>:3001/api/status-page/heartbeat/homelab;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        allow all;
    }
    location /api/status-page/homelab/manifest.json {
        proxy_pass http://<Podman IP>:3001/api/status-page/homelab/manifest.json;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        allow all;
    }
    location / {
        return 301 https://kuma.cameronkrischel.org/status/homelab/;
        # deny all;
    }

Have a wonderful rest of your day, and as always, cheers!

© 2024 Cameron Krischel