tutorial

Monitoring Homarr with Vigilmon

Homarr is a self-hosted dashboard for your home server — here's how Vigilmon monitors Homarr's web UI, database, SSL certificates, and integrations so your dashboard always reflects reality.

Homarr is a self-hosted dashboard for managing your home server and self-hosted applications. It pings your services, displays their status, and gives you a single pane of glass for everything running on your network. The irony is that Homarr itself can go offline — and when it does, you lose that overview entirely. Vigilmon adds the external monitoring layer that watches Homarr from outside your network, alerting you when the dashboard is unreachable, the database is unhealthy, or your SSL certificate is about to expire.

What You'll Set Up

  • HTTP uptime monitor for the Homarr web UI at port 7575
  • Database connectivity validation via the health endpoint
  • SSL certificate expiry alerts
  • Integration availability checks: Homarr pings your services, Vigilmon monitors Homarr itself

Prerequisites

  • Homarr deployed and accessible (default port 7575)
  • A free Vigilmon account

Step 1: Monitor the Homarr Web UI

Homarr's web interface runs on port 7575 by default. This is the dashboard your whole household or team relies on to see service statuses at a glance. Add an uptime monitor so you know immediately when it becomes unreachable:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your Homarr URL: https://homarr.yourdomain.com (or http://your-server-ip:7575 if not behind a reverse proxy).
  4. Set Check interval to 1 minute.
  5. Set Expected HTTP status to 200.
  6. Click Save.

If Homarr is behind a reverse proxy (nginx, Caddy, or Traefik — all common in home server setups), use the proxied domain. This validates the entire request path including TLS termination, not just the Homarr container itself.


Step 2: Validate Database Connectivity

Homarr uses SQLite for its backing store (configuration, integrations, user settings, and board layout). SQLite is embedded and low-maintenance, but it can fail due to disk full conditions, filesystem errors, or permission issues after a container restart. When the database is unavailable, Homarr either fails to start or serves degraded responses.

Homarr exposes a health endpoint that validates application readiness. Use it as your database connectivity check:

  1. Click Add MonitorHTTP / HTTPS.
  2. URL: https://homarr.yourdomain.com/api/health (check your Homarr version for the exact path — some versions use /health).
  3. Set Check interval to 2 minutes.
  4. Set Expected HTTP status to 200.
  5. Click Save.

Verify the endpoint on your instance:

curl -s -o /dev/null -w "%{http_code}" https://homarr.yourdomain.com/api/health
# 200

If your version of Homarr doesn't expose a health endpoint, use the root path (/) with a body content check for a string that only appears on a successfully rendered page (such as the page title or a known UI element):

  1. URL: https://homarr.yourdomain.com
  2. Under Advanced, set Expected response body contains to Homarr or another reliable string from the rendered HTML.

Step 3: SSL Certificate Alerts

Most home server deployments use Let's Encrypt or Cloudflare for TLS, often managed automatically by Caddy or a Traefik ACME plugin. When certificate renewal silently fails, Homarr becomes inaccessible to every browser on your network simultaneously. Add certificate monitoring to catch this early:

  1. Open the web UI monitor created in Step 1.
  2. Enable Monitor SSL certificate.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

For wildcard certificates covering multiple subdomains (common in home server setups where *.yourdomain.com covers Homarr, Jellyfin, Nextcloud, and others), this single check protects all of them indirectly — but it's worth adding the check to each service's primary monitor so you get service-specific alerts.


Step 4: Integration Availability — The Right Division of Labor

Homarr's built-in integration system already pings your configured services (Sonarr, Radarr, Jellyfin, Home Assistant, etc.) and displays their status on the dashboard. This is excellent for reactive visibility — you can see at a glance which services are healthy.

Vigilmon's role is complementary, not redundant: Vigilmon monitors Homarr itself and provides external alerts that reach you even when Homarr is down. Here's the right division:

| Concern | Who monitors it | |---|---| | Is Homarr up? | Vigilmon | | Are Homarr's integrated services up? | Homarr (built-in ping) | | Will I be alerted if Homarr goes down? | Vigilmon | | Will I be alerted if a service goes down? | Homarr dashboard (visible) + Vigilmon (if you add those services separately) |

For critical services in your stack — especially those that Homarr itself depends on or that are business-critical — add them directly to Vigilmon as separate monitors. That way you're covered even if Homarr's built-in status display is the thing that's broken.


Step 5: Heartbeat Monitor for the Host Machine

If Homarr's host machine (a home server, NAS, or Raspberry Pi) goes offline entirely, the web UI monitor from Step 1 will alert you within a minute. But for an additional layer — especially for machines that may hibernate or have unreliable network connections — add a heartbeat monitor that the host machine sends proactively:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Name it Homarr Host — Alive.
  3. Set the expected ping interval to 5 minutes.
  4. Copy the heartbeat URL: https://vigilmon.online/heartbeat/abc123.

Add a cron job on the Homarr host:

# Ping Vigilmon every 5 minutes to confirm the host is alive
*/5 * * * * curl -s https://vigilmon.online/heartbeat/abc123

For Docker-based Homarr deployments, you can also add a healthcheck to the container definition and hook the heartbeat to it:

services:
  homarr:
    image: ghcr.io/ajnart/homarr:latest
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:7575/api/health"]
      interval: 5m
      timeout: 10s
      retries: 3
    # ...

Then run a host-level cron that only pings Vigilmon when the container is healthy:

*/5 * * * * docker inspect --format='{{.State.Health.Status}}' homarr | grep -q healthy && curl -s https://vigilmon.online/heartbeat/abc123

This heartbeat goes silent if the container is unhealthy, stopped, or the host machine is down — giving Vigilmon a clear signal to alert you.


Step 6: Alert Routing

Homarr going down means you've lost your home server overview. Route alerts to a channel you'll see even when you're not at your desk:

  1. Open each monitor and go to Notifications.
  2. For the web UI monitor, fire on 1 failed check — you want immediate visibility.
  3. For the health endpoint monitor, allow a 1-check grace period to handle brief restart windows.
  4. For the heartbeat monitor, allow a 2-check grace period — home servers sometimes have brief network blips.
  5. Add your preferred channel: push notifications to your phone, email, or a home automation webhook (Home Assistant, for example, can trigger lights or voice alerts).

What You've Built

Homarr watches your self-hosted services. Vigilmon watches Homarr. With Vigilmon monitoring the web UI at :7575, the health endpoint confirming SQLite database connectivity, SSL certificate expiry, and a heartbeat confirming the host machine is alive, you have complete external coverage of the dashboard that's supposed to show you everything. When Homarr goes down, Vigilmon is there to tell you — even though Homarr can't.

Get started at vigilmon.online.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →