If you’re into hosting your own services, monitoring tools are amazing additions to your app suite. Besides helping you collect the key statistics of your home server, these utilities can also notify you if a container, virtual machine, or node goes offline.

While Zabbix, Grafana, and Prometheus offer tons of monitoring facilities for your home lab setup, Uptime Kuma is an amazing tool for beginners who don’t want to spend hours tinkering with config files or getting familiar with a new web UI just to track their home lab statistics. Plus, it’s light enough to be deployed on weaker systems – including the Raspberry Pi series. So, here’s a detailed guide to help you turn your spare Raspberry Pi into a full-on home server monitoring machine with Uptime Kuma.

What you’ll need for this project

Since we’ll use Docker to host the Uptime Kuma instance, you don’t need a beefy Raspberry Pi system to track your home lab. While you could run it on a Raspberry Pi Zero 2 W, I recommend going with at least an RPi 3 model, so you don’t have to deal with a laggy and unresponsive UI.

As for the operating system, you’re free to choose any Linux distribution. I’ve used the GUI variant of the Raspberry Pi OS for this tutorial, but you can also opt for CLI-based barebones distros if you want maximum resource utilization. Finally, you’ll need a working instance of Docker Engine pre-installed on your Raspberry Pi.

  • Raspberry Pi 5
    CPU
    Arm Cortex-A76 (quad-core, 2.4GHz)
    Memory
    Up to 8GB LPDDR4X SDRAM
    Operating System
    Raspberry Pi OS (official)
    Ports
    2× USB 3.0, 2× USB 2.0, Ethernet, 2x micro HDMI, 2× 4-lane MIPI transceivers, PCIe Gen 2.0 interface, USB-C, 40-pin GPIO header
    GPU
    VideoCore VII
    Starting Price
    $60
  • SanDisk Ultra microSD card
    $22 $26 Save $4

Deploying the Uptime Kuma instance

Once you’ve gathered the necessary components, it’s time to put on your tinkering hat and create a container for the Uptime Kuma instance.

  1. Launch the terminal app included in your distro.
  2. Execute the docker run command followed by the essential parameters and wait for Docker to deploy the Uptime Kuma instance.
    docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
  3. You can access the Uptime Kuma web UI by typing http://localhost:3001 into your favorite browser. If you wish to access the Uptime Kuma from another device on the same network as the Raspberry Pi, you can replace the localhost string with the IP address of the Raspberry Pi.

Configuring the Uptime Kuma web UI

With the container up and running, the next course of action is to set up the web UI.

  1. Choose a Language for the UI, enter a Username and Password, and tap Create.
  2. Inside the Dashboard, click on the Add New Monitor button.
  3. Type the Friendly Name and URL of the service you wish to monitor before hitting Save. Remember to include the port number required to access the service inside the URL field.
  4. (Optional) Besides the Heartbeat interval and (number of) Retries, you can also set up custom alerts on Uptime Kuma by tapping the Setup Notification button and entering the Bot token, Webhook URL, and other settings for your favorite Notification app.

Building a (Raspberry) Pi-of-Sauron with Uptime Kuma

Assuming the URL of your self-hosted service is valid, Uptime Kuma will start logging its response time and uptime percentage. If you’re having trouble pairing your Proxmox workstation to Uptime Kuma, you’ll want to enable the Ignore TLS/SSL error for HTTPS websites option when adding it to your monitoring hub.

While we’re on the subject of Proxmox, I’d recommend setting up your Uptime Kuma monitoring station on a separate device like the Raspberry Pi. That’s because if you configure an Uptime Kuma instance on top of your tinkering machine, you won’t be able to access it in case your experiments render the server offline. If you’re wondering, then yes, I speak from experience.