tutorial

Calibre-Web Monitoring with Vigilmon: Uptime, OPDS & Library Health Alerts

Monitor your self-hosted Calibre-Web ebook server with Vigilmon — track web UI availability, login page health, the OPDS catalog endpoint, library mount status, and SSL certificate expiry.

Your Calibre-Web server hosts your entire ebook library — thousands of books organized, searchable, and readable from any device. When the underlying NFS mount drops or the SQLite database locks, the web UI disappears and your library becomes inaccessible, usually at the exact moment you sit down to read. For self-hosted ebook servers, you don't find out until you try to open a book.

Calibre-Web is a self-hosted web interface for your Calibre ebook library. Vigilmon provides the external monitoring that detects failures in the web UI, catalog endpoint, and library availability — before you realize you can't access your books.

This tutorial walks you through monitoring Calibre-Web end-to-end with Vigilmon.

What You'll Build

  • A Vigilmon HTTP monitor on Calibre-Web's login page
  • An OPDS catalog endpoint monitor for client app availability
  • A library mount availability check
  • SSL certificate expiry alerts
  • Alert channels for immediate notification

Prerequisites

  • A running Calibre-Web instance (typically on port 8083 behind a reverse proxy)
  • A free account at vigilmon.online

Step 1: Monitor Web UI Availability

Calibre-Web doesn't expose a dedicated health endpoint — the login page itself is the primary availability signal. It loads the application, connects to the Calibre database, and renders the UI in a single request.

Test it from your terminal:

curl -I https://calibre.yourdomain.com/login

A healthy response returns HTTP 200 with the login form HTML.

Set up the Vigilmon monitor:

  1. Log in to Vigilmon and click New Monitor → HTTP.
  2. Set URL to https://calibre.yourdomain.com/login.
  3. Set Check interval to 60 seconds.
  4. Set Expected status code to 200.
  5. Under Advanced → Keyword check, add:
    • Keyword present: Calibre-Web
  6. Save the monitor.

The Calibre-Web login page includes the application name in its HTML title and body. If the Flask application fails to start, the database becomes unavailable, or the reverse proxy breaks, this check detects the failure immediately.


Step 2: Monitor the OPDS Catalog Endpoint

OPDS (Open Publication Distribution System) is the protocol used by ebook reader apps — KOReader, Kybook, Marvin, Moon+ Reader — to browse and download books from your Calibre-Web library. If the OPDS endpoint is broken, your ebook readers lose access to the catalog even when the web UI appears normal.

Calibre-Web serves the OPDS catalog at /opds.

Add a monitor for the OPDS endpoint:

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://calibre.yourdomain.com/opds.
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check, configure:
    • Keyword present: feed
  5. Save.

The OPDS response is an Atom XML feed. The feed element is always present at the root of a valid OPDS response. A broken catalog — whether from a database error, a missing library path, or a Flask routing regression — causes this check to fail while the login page may still load.

If you have OPDS authentication enabled, add credentials under Advanced → HTTP Authentication in Vigilmon.


Step 3: Monitor Library Mount Availability

Calibre-Web reads your ebook library from a directory configured as the Calibre library path. If that path is a network share (NFS, SMB/CIFS) and the mount drops, Calibre-Web loses access to all books — but the application itself continues running and the login page continues to load.

The best way to detect this with Vigilmon is to monitor a URL that requires actual database reads from the library. The book list endpoint serves this purpose:

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://calibre.yourdomain.com/.
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check, configure:
    • Keyword present: books
  5. Save.

The Calibre-Web homepage queries the Calibre SQLite database to render the book grid. A dropped mount or corrupted database causes the homepage to return an error page or empty results, while the login page at /login remains functional. This creates two independent signals: the login page confirms the application is alive, while the homepage confirms the library is readable.


Step 4: SSL Certificate Monitoring

Calibre-Web is typically served over HTTPS via Nginx, Caddy, or Traefik. An expired TLS certificate breaks access from every ebook client — KOReader, Marvin, and browser-based access all reject expired certificates.

Vigilmon automatically monitors SSL certificate validity on all HTTPS monitors. Configure dedicated expiry alerts:

  1. Open any of your HTTPS Calibre-Web monitors in Vigilmon.
  2. Go to Settings → SSL.
  3. Enable Alert when certificate expires within 14 days.
  4. Optionally enable Alert when certificate expires within 30 days for early warning.

You'll receive alerts like:

⚠️  SSL Warning: calibre.yourdomain.com
Certificate expires in 7 days (2026-07-10)

For Let's Encrypt via Certbot or Caddy: renewal failures are silent until your ebook apps start rejecting connections. Vigilmon's certificate monitor closes that 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 mobile push notifications

A Calibre-Web downtime alert in Discord looks like:

🔴 DOWN: calibre.yourdomain.com/login (HTTP 502)
Calibre-Web login page unavailable
Region: EU-West
Triggered: 2026-01-15 22:07 UTC

Recovery notification:

✅ RECOVERED: calibre.yourdomain.com/login
Downtime: 14 minutes

Step 6: Status Page

Go to Status Pages → New Status Page in Vigilmon. Add your Calibre-Web monitors and publish. Share the link with household members or reading group members so they can check library availability themselves.


What You've Built

| Scenario | How Vigilmon catches it | |---|---| | Flask/Gunicorn process crash | Login page returns non-200 or connection refused | | Reverse proxy (Nginx/Caddy) down | HTTPS monitor detects 502 or TLS error | | Database unavailable or corrupted | Login page keyword check fails | | OPDS endpoint broken | OPDS catalog monitor fires | | Network share/library mount dropped | Homepage book-list monitor fails | | SSL certificate expired or expiring | SSL expiry alert triggers at threshold |


Self-hosting Calibre-Web gives you complete ownership of your reading library — but a silent mount failure or application crash means no access until you investigate. Vigilmon monitors from outside your network, from multiple regions, with no agents to install.

Start monitoring your Calibre-Web 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 →