tutorial

Audiobookshelf Monitoring Tutorial

--- title: "Audiobookshelf Monitoring with Vigilmon: Uptime, Health Checks & SSL Alerts" published: false description: Monitor your self-hosted Audiobookshe...


title: "Audiobookshelf Monitoring with Vigilmon: Uptime, Health Checks & SSL Alerts" published: false description: Monitor your self-hosted Audiobookshelf server with Vigilmon -- track the /healthcheck endpoint, web UI availability, API endpoint health, SSL certificate expiry, and library availability. tags: audiobookshelf, audiobooks, podcasts, self-hosted, monitoring cover_image:

Audiobookshelf keeps your audiobook and podcast library at your fingertips -- on your commute, during your workout, and before bed. When it goes down, your progress syncs fail, downloads stop, and your listening habit is interrupted until someone notices and investigates. If that someone is you, you want to know the moment it happens, not when you try to pick up where you left off.

Vigilmon monitors your self-hosted Audiobookshelf instance from outside your network -- checking the health endpoint, web UI, API, SSL certificate, and library availability without any agents or plugins required.


What You'll Build

  • A Vigilmon HTTP monitor on the /healthcheck endpoint
  • A web UI availability monitor with keyword verification
  • An API endpoint check for authenticated library access
  • SSL certificate expiry alerts
  • Alert channels for immediate downtime notification

Prerequisites

  • A running Audiobookshelf instance (typically on port 13378 behind a reverse proxy)
  • A free account at vigilmon.online

Step 1: Monitor the /healthcheck Endpoint

Audiobookshelf exposes a dedicated health endpoint at /healthcheck. It is unauthenticated, lightweight, and returns a 200 OK response when the server is operational.

Test it from your terminal:

bash curl https://abs.yourdomain.com/healthcheck

Expected response:

json {"success":true}

This endpoint confirms that the Audiobookshelf Node.js process is running, the HTTP stack is accepting connections, and basic server initialization has completed. A crashed process, out-of-memory kill, or failed startup returns a connection error.

Set up the Vigilmon monitor:

  1. Log in to Vigilmon and click New Monitor -> HTTP.
  2. Set URL to https://abs.yourdomain.com/healthcheck.
  3. Set Check interval to 60 seconds.
  4. Set Expected status code to 200.
  5. Under Advanced -> Keyword check:
    • Keyword present: success
  6. Save the monitor.

Vigilmon now polls your Audiobookshelf health endpoint every minute from multiple geographic regions.


Step 2: Monitor Web UI Availability

The web UI is served separately from the API backend. A missing static asset, a broken build, or a reverse proxy routing issue can leave the backend healthy while users see a blank page or a 502.

Add a keyword monitor on the web interface:

  1. Click New Monitor -> HTTP in Vigilmon.
  2. Set URL to https://abs.yourdomain.com (your Audiobookshelf homepage).
  3. Set Expected status code to 200.
  4. Under Advanced -> Keyword check:
    • Keyword present: Audiobookshelf
  5. Save.

Audiobookshelf's default HTML includes the application name in the page title. If the web app fails to load, this check fails independently of the /healthcheck monitor, helping you isolate whether the issue is the server process or the frontend delivery.


Step 3: Monitor the API Endpoint

The /healthcheck endpoint verifies the server is alive, but does not confirm your library is accessible or the database is responding correctly. Add an authenticated API check for deeper coverage.

Get an API token:

  1. Open Audiobookshelf, go to Settings -> Users -> click your username.
  2. Scroll to the API Token section and copy your token.

Set up the API monitor:

  1. Click New Monitor -> HTTP in Vigilmon.
  2. Set URL to https://abs.yourdomain.com/api/libraries.
  3. Under Advanced -> Custom headers, add: Authorization: Bearer YOUR_API_TOKEN
  4. Set Expected status code to 200.
  5. Under Advanced -> Keyword check:
    • Keyword present: libraries
  6. Save.

The /api/libraries endpoint returns your configured libraries. If the Audiobookshelf database is corrupted, the library directory is unmounted, or the server is in a degraded state, this check fires while /healthcheck may still return 200.


Step 4: Monitor Library Availability

Audiobookshelf stores your media files in mounted directories. A disconnected NFS share, a failed bind mount, or a Docker volume issue can make your library appear empty even when the server runs correctly. The server stays up; your audiobooks disappear.

Verify content is accessible using the library items endpoint:

  1. Find a library ID from your /api/libraries response: bash curl -H "Authorization: Bearer YOUR_TOKEN" https://abs.yourdomain.com/api/libraries
  2. Click New Monitor -> HTTP in Vigilmon.
  3. Set URL to https://abs.yourdomain.com/api/libraries/YOUR_LIBRARY_ID/items?limit=1.
  4. Add the Authorization: Bearer YOUR_TOKEN header.
  5. Expected status code: 200.
  6. Keyword present: results.
  7. Save.

This monitor fires when your storage is disconnected but the server is still running -- one of the trickiest failure modes to catch without specific library-level checks.


Step 5: SSL Certificate Monitoring

Audiobookshelf clients -- the iOS and Android apps -- enforce strict HTTPS certificate validation for remote connections. An expired certificate locks out every mobile user, even if the web UI remains accessible from a browser that bypasses the warning.

Configure SSL expiry alerts in Vigilmon:

  1. Open any of your HTTPS Audiobookshelf monitors.
  2. Navigate to Settings -> SSL.
  3. Enable Alert when certificate expires within 14 days.
  4. Optionally enable 30-day early warning for extra runway before renewal.

A certificate expiry notification:

Warning: abs.yourdomain.com certificate expires in 9 days (2026-07-09) Action required: renew Let's Encrypt certificate

Audiobookshelf mobile apps use HTTPS for all API requests and will fail silently -- showing login errors rather than certificate errors -- when TLS validation fails. Early SSL alerts prevent this class of failure entirely.


Step 6: Configure Alert Channels

Go to Notifications -> New Channel in Vigilmon and configure your preferred delivery:

  • Email -- immediate alerts and daily summaries
  • Webhook -> Discord -- push to your homelab or personal Discord server
  • Webhook -> ntfy.sh -- mobile push notifications without a dedicated app

An Audiobookshelf downtime alert via Discord:

DOWN: abs.yourdomain.com/healthcheck Audiobookshelf server unreachable Status: Connection timeout Region: US-East Started: 2026-03-05 06:14 UTC

Recovery notification:

RECOVERED: abs.yourdomain.com/healthcheck Downtime: 4 minutes


Step 7: Create a Status Page

Go to Status Pages -> New Status Page in Vigilmon. Add all your Audiobookshelf monitors and publish the page. If you share your server with family or friends, the status page gives them a self-service answer to "is the server down?" before they contact you.


What You've Built

| Failure scenario | How Vigilmon catches it | |---|---| | Audiobookshelf process crash or OOM kill | /healthcheck returns connection error | | Reverse proxy (Nginx/Caddy) misconfigured | HTTPS monitor detects 502 or timeout | | Web UI assets broken after update | Keyword check on homepage fails | | Database corrupted or inaccessible | API libraries endpoint monitor fires | | Storage volume disconnected | Library items monitor returns empty/error | | SSL certificate expired or expiring | SSL expiry alert fires at threshold |


Audiobookshelf is one of the most satisfying self-hosted applications to run -- a private library of audiobooks and podcasts, synced across devices without subscriptions. Keeping it running reliably means watching it from the outside. Vigilmon does that automatically, from multiple regions, with no server-side configuration required.

Start monitoring your Audiobookshelf server today -- register free at vigilmon.online.

Monitor your app with Vigilmon

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

Start free →