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:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your Runtipi dashboard URL:
http://YOUR_SERVER_IP(orhttps://if you've configured a domain with TLS). - Set Check interval to
5 minutes. - Set Expected HTTP status to
200. - 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:
- In Vigilmon, click Add Monitor → HTTP / HTTPS.
- Enter the health endpoint:
http://YOUR_SERVER_IP/api/health. - Set Expected HTTP status to
200. - Set Check interval to
5 minutes. - Under Keyword check, enter
"status":"ok"to confirm the response body indicates a healthy state. - 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:
- Find the port for each installed app in the Runtipi dashboard under My Apps.
- 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
- Nextcloud:
- Set Check interval to
5 minutesand Expected HTTP status to200.
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:
- Open the HTTP monitor you created for your Runtipi domain in Step 1.
- Enable Monitor SSL certificate.
- Set Alert when certificate expires in less than
21 days. - 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:
- In Vigilmon, click Add Monitor → Cron Heartbeat.
- Set Expected ping interval to match the service's run frequency (e.g.
60minutes for an hourly sync). - Copy the heartbeat URL shown (e.g.
https://vigilmon.online/heartbeat/abc123). - 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
- Go to Alert Channels in Vigilmon and connect Slack, email, or a webhook.
- Set Consecutive failures before alert to
2on app monitors — Docker container restarts take a few seconds and can cause transient single-probe failures. - 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.