Your Navidrome server went down overnight. Your morning playlist didn't load. Your family's entire music library is unreachable, and you have no idea when it stopped working or why. For self-hosted music streaming, that silence is the worst kind of alert.
Navidrome is a lightweight, self-hosted music streaming server compatible with the Subsonic API. It powers personal music collections, family servers, and small community instances. Vigilmon gives you the external uptime monitoring that catches Navidrome failures before your next listening session — covering the health API, web UI, Subsonic compatibility layer, and SSL certificate.
This tutorial walks you through monitoring Navidrome end-to-end with Vigilmon.
What You'll Build
- A Vigilmon HTTP monitor on Navidrome's
/pinghealth endpoint - A web UI availability monitor
- A Subsonic API compatibility monitor
- SSL certificate expiry alerts
- Alert channels for immediate notification
Prerequisites
- A running Navidrome instance (typically on port 4533 behind a reverse proxy)
- A free account at vigilmon.online
Step 1: Monitor the /ping Health Endpoint
Navidrome exposes a lightweight health endpoint at /ping. It returns a simple {"status": "OK"} response when the server is running and accepting connections.
Test it from your terminal:
curl https://music.yourdomain.com/ping
Expected response:
{"status": "OK"}
This endpoint bypasses authentication and exercises the HTTP stack, confirming that Navidrome's web server is running. If the process crashes, the database becomes unavailable, or your reverse proxy drops the connection, /ping will fail.
Set up the Vigilmon monitor:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://music.yourdomain.com/ping. - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → JSON body assertion, add:
- Path:
status - Operator:
equals - Value:
OK
- Path:
- Save the monitor.
Vigilmon now polls your Navidrome health endpoint every minute from multiple geographic regions.
Step 2: Monitor Web UI Availability
The /ping endpoint confirms the server process is alive, but it doesn't verify that the web UI — the React frontend that users actually interact with — is loading correctly. A broken build artifact, a misconfigured CDN, or a missing static file can leave the API healthy while the UI returns a blank page.
Add a keyword monitor on the web UI:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://music.yourdomain.com/(your Navidrome homepage). - Set Expected status code to
200. - Under Advanced → Keyword check, configure:
- Keyword present:
Navidrome
- Keyword present:
- Save.
When the Navidrome frontend loads correctly, the page HTML includes the app title. If the UI is broken or the static assets are missing, the keyword check will fail and Vigilmon will alert you.
Step 3: Monitor the Subsonic API Compatibility Layer
Navidrome's primary value for many users is its Subsonic-compatible API, which allows apps like DSub, Symfonium, Ultrasonic, and Substreamer to connect. The Subsonic API lives under /rest/ and requires authentication, but you can verify it's operational by checking the ping REST method.
Construct the URL using your credentials:
https://music.yourdomain.com/rest/ping.view?u=<username>&t=<md5-token>&s=<salt>&v=1.16.1&c=vigilmon&f=json
Where t is the MD5 hash of your password concatenated with the salt. For monitoring purposes, use a dedicated read-only monitoring user:
- In Navidrome admin, create a user
monitorwith a known password. - Pick a static salt, e.g.,
vigilsalt. - Compute
t = md5(password + salt)— you can useecho -n "yourpasswordvigilsalt" | md5sum. - Build the full URL.
Set up the monitor in Vigilmon:
- Click New Monitor → HTTP.
- Set URL to your constructed Subsonic ping URL.
- Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword present:
"ok"
- Keyword present:
- Save.
A successful Subsonic ping returns {"subsonic-response": {"status": "ok", ...}}. If the Subsonic API layer is broken — for example, because of a database migration issue — this check fires while the base /ping stays green.
Step 4: SSL Certificate Monitoring
Navidrome is typically served over HTTPS via a reverse proxy like Nginx, Caddy, or Traefik. An expired or misconfigured TLS certificate will lock out every client — web browsers, mobile apps, and Subsonic clients alike.
Vigilmon automatically monitors SSL certificate validity when you add an HTTPS monitor. To configure dedicated expiry alerts:
- Open any of your HTTPS Navidrome monitors in Vigilmon.
- Go to Settings → SSL.
- Enable Alert when certificate expires within 14 days.
- Optionally enable Alert when certificate expires within 30 days for early warning.
You'll receive alerts like:
⚠️ SSL Warning: music.yourdomain.com
Certificate expires in 12 days (2026-07-15)
For Let's Encrypt users with auto-renewal via Certbot or Caddy's built-in ACME: renewal failures are silent until it's too late. Vigilmon's certificate monitor catches this gap.
Step 5: Alert Channels
Go to Notifications → New Channel in Vigilmon and configure your preferred alert delivery:
- Email — immediate alerts to your inbox
- Webhook — forward to Discord, Slack, or ntfy.sh for push notifications on mobile
For Discord, paste your server webhook URL. A Navidrome downtime alert looks like:
🔴 DOWN: music.yourdomain.com/ping (HTTP 502)
Navidrome health check failed
Region: EU-West
Triggered: 2026-01-15 03:22 UTC
Recovery notification:
✅ RECOVERED: music.yourdomain.com/ping
Downtime: 8 minutes
Step 6: Status Page
Go to Status Pages → New Status Page in Vigilmon. Add your Navidrome monitors and publish. You can share this with family members or co-users so they can check status themselves instead of messaging you.
What You've Built
| Scenario | How Vigilmon catches it |
|---|---|
| Navidrome process crash | /ping returns non-200 or connection refused |
| Reverse proxy (Nginx/Caddy) down | HTTPS monitor detects 502 or TLS error |
| Web UI assets missing or broken | Keyword monitor on homepage fails |
| Subsonic API layer broken (DB issue) | Subsonic ping REST monitor fires |
| SSL certificate expired or expiring | SSL expiry alert triggers at threshold |
| DNS misconfiguration | HTTP monitor detects DNS resolution failure |
Self-hosting your music library is rewarding — but without external monitoring, you're the last person to know when it goes down. Vigilmon watches from outside your network, from multiple regions, with no agents to install.
Start monitoring your Navidrome server today — register free at vigilmon.online.