tutorial

Monitoring Runtipi with Vigilmon

Runtipi makes self-hosting one-click easy, but it won't tell you when your home server goes dark. Here's how to monitor the Runtipi dashboard, installed app uptime, Docker service health, and SSL certificates with Vigilmon.

Runtipi turns your home server into a one-click app platform — install Nextcloud, Jellyfin, or Vaultwarden the same way you'd install a phone app. But that convenience doesn't come with built-in uptime alerts. If the Runtipi daemon crashes or an installed app container exits, you won't know until you try to use it. Vigilmon adds the missing observability layer: uptime monitors for your Runtipi dashboard, health checks for each installed app, and SSL certificate expiry alerts.

What You'll Set Up

  • HTTP uptime monitor for the Runtipi web dashboard
  • Health API endpoint check for the Runtipi daemon
  • Per-app uptime monitors for installed applications
  • SSL certificate expiry alerts for your domain
  • Docker service heartbeat for background app containers

Prerequisites

  • Runtipi 2.x+ installed and running on a Linux machine or Raspberry Pi
  • At least one app installed through the Runtipi app store
  • A free Vigilmon account

Step 1: Monitor the Runtipi Dashboard

The Runtipi web UI is the control plane for your entire home server setup. If it goes down, you lose visibility into every installed app. Add a top-level monitor first:

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your Runtipi dashboard URL: http://YOUR_SERVER_IP (or https:// if you've configured a domain with TLS).
  4. Set Check interval to 5 minutes.
  5. Set Expected HTTP status to 200.
  6. Click Save.

If Runtipi is exposed on a non-standard port (default is port 80 or 443), include the port in the URL:

http://192.168.1.50:80

Step 2: Check the Runtipi Health API

Runtipi exposes an internal health endpoint through its API. This gives you a deeper signal than a simple HTTP check — it confirms the Runtipi backend process is alive, not just that nginx is responding:

  1. In Vigilmon, click Add MonitorHTTP / HTTPS.
  2. Enter the health endpoint: http://YOUR_SERVER_IP/api/health.
  3. Set Expected HTTP status to 200.
  4. Set Check interval to 5 minutes.
  5. Under Keyword check, enter "status":"ok" to confirm the response body indicates a healthy state.
  6. Click Save.

If the dashboard loads but the API returns an error, this monitor fires while the dashboard check passes — giving you precise signal about which layer failed.


Step 3: Monitor Each Installed App

Every app Runtipi installs gets its own port. Add a Vigilmon monitor for each critical app so you know immediately if a container exits or crashes:

  1. Find the port for each installed app in the Runtipi dashboard under My Apps.
  2. For each app, add a Vigilmon HTTP monitor:
    • Nextcloud: http://YOUR_SERVER_IP:8080
    • Jellyfin: http://YOUR_SERVER_IP:8096
    • Vaultwarden: http://YOUR_SERVER_IP:8000
  3. Set Check interval to 5 minutes and Expected HTTP status to 200.

If the app exposes a dedicated health endpoint, use that instead of the root URL. For example, Jellyfin responds at /health:

http://YOUR_SERVER_IP:8096/health

A health endpoint is a stronger signal than a homepage check because it validates that the application's internal services are running, not just that the web server accepted the request.


Step 4: SSL Certificate Alerts

If you've configured Runtipi with a custom domain and Let's Encrypt certificates, add certificate expiry monitoring. Runtipi manages certificate renewal automatically, but renewal failures are silent:

  1. Open the HTTP monitor you created for your Runtipi domain in Step 1.
  2. Enable Monitor SSL certificate.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

Repeat for any installed apps exposed on subdomains (e.g. nextcloud.yourdomain.com). A 21-day lead time gives you enough runway to investigate and manually renew before the certificate actually expires.


Step 5: Heartbeat Monitoring for Background Services

Some Runtipi-installed apps run background workers — media scanners, sync agents, backup jobs — that have no HTTP interface to probe. Use Vigilmon's cron heartbeat to confirm these services are running:

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set Expected ping interval to match the service's run frequency (e.g. 60 minutes for an hourly sync).
  3. Copy the heartbeat URL shown (e.g. https://vigilmon.online/heartbeat/abc123).
  4. Add a curl call to the container's startup or scheduled script:
# Add to the app's cron script or entrypoint
curl -s https://vigilmon.online/heartbeat/abc123

For Docker-based Runtipi apps, you can inject the heartbeat ping via a sidecar cron job on the host:

# /etc/cron.d/runtipi-heartbeat
*/60 * * * * root docker exec runtipi-app-container curl -s https://vigilmon.online/heartbeat/abc123

If the container stops and the exec fails, no ping is sent, and Vigilmon fires an alert after the expected interval lapses.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and connect Slack, email, or a webhook.
  2. Set Consecutive failures before alert to 2 on app monitors — Docker container restarts take a few seconds and can cause transient single-probe failures.
  3. Group related monitors with a Status Page in Vigilmon to give yourself a single-glance health dashboard for your home server.

Summary

| Monitor | Target | What It Catches | |---|---|---| | Dashboard HTTP | http://SERVER_IP | Runtipi UI down, nginx failure | | Health API | /api/health | Runtipi daemon crash | | Installed app | Per-app port URL | Container exit, app crash | | SSL certificate | Your custom domain | Let's Encrypt renewal failure | | Cron heartbeat | Background service | Worker crash, silent failure |

Runtipi gives you a self-hosted app store experience without the cloud lock-in. Vigilmon gives you the alerting that cloud platforms include by default — so when your home server needs attention, you find out before your family does.

Monitor your app with Vigilmon

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

Start free →