Every time I sat down at my workstation, I instinctively opened several panels to see the status of my home lab before doing anything. And it had become such a routine that I barely realized I was doing it. I usually start with You eat for the server’s health. and then move on to Uptime Kuma; If I see something strange, I open Portainer to see the overall status of the server and Scrutiny for anything disk related.
I didn’t have any problems with any of the monitoring tools. But I spent more time on various panels than actually doing anything. I needed a dashboard where I could take a look, see if everything was okay, and get on with my other work. That’s when I came across Pulse. It seemed like the only board that could replace all the others, but not completely.
The most difficult part of managing a homelab is not the configuration. It’s knowing where to look when something is wrong.
Nothing was actually broken.
I was checking too many places.
As my lab grew, I started taking uptime and health more seriously. Monitoring was something I added over time as the need grew, not from day one. I initially started with a couple of services and I was the only user, so monitoring the services seemed excessive to me. You might open Portainer from time to time to check things out. But as the number of containers grew from a couple to dozens and then to twenty, monitoring each container manually was not feasible.
I was not only worried about the health of the container, but also the health of my server. For context, I built my home lab server from a repurposed 8 year old laptop. The laptop was a Dell Latitude 7480, with a Core i5-6300U CPU, about 12GB of RAM, and a 256GB SSD. So, putting more than 20 containers in it was like getting all the juice out of it. After almost a year with my home lab, I gradually added several monitoring services: Uptime Kuma for utilities (via pangolin), Beszel for server resources and Scrutiny for SMART status of the disk. And Portainer was already there for internal Docker containers.
Together, they handled all of my questions about the health and uptime of my home lab. Whether it’s “Is my utility working?” or “Is the server under load?” I opened the panel that matched the concern and it responded instantly. But that was the problem. I had all the information, but it was fragmented into four different panels. None of these contradicted each other. They were simply unaware of each other.
For example, a container could be running on Portainer while the server was under memory pressure on Beszel. At the same time, Uptime Kuma could display green while a container was repeatedly rebooted. There was no direct connection between the panels: I was the one who joined them manually. So for a long time I was looking for something that could tell me if I needed to open the others.
Then Pulse started connecting everything.
A board replaced the first two.
As usual, in my free time, I was browsing Reddit threads and came across a thread where OP was asking for GUI monitoring and management tools. I casually opened it and checked the comments; most of them recommended Beszel and some CLI based tools. One even suggested Komodo and another suggested Pulse. Some of the commenters also supported him. So, I decided to visit their GitHub repository and homepage.
The landing page itself half convinced me: the hero banner line: “The systems administrator who watches over your entire infrastructure 24/7“, did a lot of the work. The other half came from the live demo it provided. I then decided to give it a try and self-hosted the community version in my home lab. The first time I logged in after setup, it had the same information that normally required jumping between multiple panels.
The Docker dashboard alone said enough, such as host status, stopped containers, containers needing updates, start/stop/restart actions, and per-container metrics. It used to take me to several Portainer tabs and a quick look at the Beszel panel.
The alert tab told me more than anything else; Out of a total of 241 alerts, it had already filtered 177 as critical and 64 as warnings, excluding general noise. Without me configuring anything, I had already highlighted the most serious ones, such as Pi-hole not being healthy and Meilisearch and cloudflared being removed by OOM.
For the first time, it felt like something that could answer my everyday questions, like “Is there something that needs my attention?” from a single control panel. Although it wasn’t perfect.
Pulse didn’t replace everything
A board still earned its place.
Pulse became the home page. Beszel was not eliminated, nor was Portainer rejected; They simply stopped being the first tab you opened. Two of my tools were still intact: Uptime Kuma and Scrutiny. He wanted to see if Pulse could take over what Kuma was doing. So, I decided to explore the Pulse settings. I found a ton of features I hadn’t experienced yet. As I mentioned before, I use Uptime Kuma primarily to monitor the uptime of my utilities. I started adding those URLs into Pulse’s availability check monitoring feature. I added my five domains: Jellyfin, Immich, Nextcloud, ntfy and Vaultwarden.
While adding the services, I noticed one thing: “HTTP statuses less than 500 count as reachable.” At that point, I decided to ignore it because I didn’t consider it a big deal. Once all five services were added, the dashboard started showing green ticks for all of them. Since none of my services were experiencing any interruption, I decided to create one. I intentionally stopped my Vault Guardian Container because it was the least used. I waited a few seconds and then clicked the Test button; Surprisingly it validated it as online. I checked the container dashboard inside Pulse; It was showing that it stopped there too. I checked the Pangolin board; It was down there too.
After a few troubleshooting sessions, I tried to connect the dots. Since Vaultwarden was behind SSO in Pangolin, even when the container was down, it returned a 403 status. And as mentioned above, HTTP statuses below the 500 line affected me at the time. Since it was a 403 and not a 502, Pulse still read it as online. Once I bypassed Pangolin SSO for the /alive end point, Pulse immediately monitored it successfully. After that I connected the alerts to my ntfy instance via webhook. That closed the loop of detecting issues and sending them through my ntfy instance. Although Kuma offered more granular monitoring, such as wait times and expected responses, Pulse was sufficient for my setup.
After all this, I still hadn’t found a replacement for one of my panels. Pulse monitored services, containers, and servers, but it did not monitor SMART data like Scrutiny did. The Pulse panel exposed basic disk information such as usage, free and total storage, but it wasn’t much more than a single-line terminal command would expose.
While looking for something to replace Scrutiny, I came across Patrol. It was something that none of the previous tools offered. It was basically an AI analysis of my servers’ data. Initially, I ignored it because I didn’t want to expose my home lab to a cloud LLM. But as I delved deeper, I saw that there was local LLM integration through Ollama. I already had a small LLM (qwen2.5:1.5b) in the lab from my previous experiment, so I immediately decided to try Patrol. Although I was a little skeptical about whether this little model would work, I was surprised when I performed the readiness check; said: “The selected model can execute patrol work in this facility..”
It successfully completed its first manual run, although it had yet to see a real incident to test itself against. He seemed promising, but he hadn’t earned my trust yet. At the end of testing, Pulse had not become my only control panel, but it was the one I would open first.
The custom changed. The stack didn’t do it…yet.
When I decided to try Pulse, my intention was not to replace any of my existing monitoring stacks. I was looking for something to replace my daily routine of opening two to four different monitoring panels. After testing Pulse for a few days, my workflow was simplified, even if the stack wasn’t. For my home lab, it replaced my habit of opening Uptime Kuma, Beszel and Portainer (for container health) every day. Scrutiny remained because SMART monitoring was not something Pulse was created to do. I also set up Patrol, it passed the readiness test and completed its first run cleanly, but I have yet to see how it helps me with long-term server monitoring. Pulse hadn’t completely replaced any part of my monitoring stack, but it had earned a permanent place in my home lab and become the first dashboard I opened.





