tutorial

Wallabag Monitoring with Vigilmon: Uptime, Health Checks & Import Queue Alerts

Monitor your self-hosted Wallabag read-it-later app with Vigilmon — track health endpoint availability, web UI, import queue, and SSL certificate expiry.

You saved a long article to read this evening. When you open Wallabag on your phone, the app can't sync — the server is unreachable. You had 200 articles queued for import from Pocket when you switched to Wallabag, but the import job stalled silently halfway through. Half your reading history is missing and you had no way to know.

Wallabag is a self-hosted read-it-later application — an open-source alternative to Pocket or Instapaper — with mobile apps, browser extensions, and a full REST API. Vigilmon gives you continuous external monitoring so server failures and import queue stalls surface immediately, not after your reading routine is already broken.

This tutorial covers monitoring Wallabag end-to-end with Vigilmon.

What You'll Build

  • A Vigilmon HTTP monitor on Wallabag's health/availability endpoint
  • A web UI availability monitor
  • An import queue health check
  • SSL certificate expiry alerts
  • Alert channels for immediate notification

Prerequisites

  • A running Wallabag instance (typically on port 80/443 behind a reverse proxy)
  • A free account at vigilmon.online

Step 1: Monitor the Health Endpoint

Wallabag does not expose a dedicated /health endpoint, but the login page serves as a reliable availability probe — it exercises the PHP/Symfony stack, the session backend, and the database connection in a single request.

Test it:

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

Expected response:

HTTP/2 200
content-type: text/html; charset=UTF-8

A 200 from the login page confirms that the PHP-FPM process is running, Nginx or Apache is forwarding requests, and the database (MySQL, PostgreSQL, or SQLite) is reachable for session initialization.

Set up the Vigilmon monitor:

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

Vigilmon now polls your Wallabag availability every minute from multiple geographic regions.


Step 2: Monitor Web UI Availability

The login page checks the application stack, but article rendering and user-facing features require additional layers. A failed asset pipeline, a misconfigured ASSET_VERSION environment variable, or a broken Twig template cache can break the reading UI while the login page stays up.

Add a UI monitor:

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://wallabag.yourdomain.com/login (or your Wallabag root URL).
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check, configure:
    • Keyword present: wallabag
    • Keyword absent: 500 Internal Server Error, Whoops, Bad Gateway
  5. Save.

Wallabag's login page includes the application name in the page title and in the form markup, making it a reliable keyword target.


Step 3: Monitor the Import Queue

Wallabag's import queue processes articles saved from Pocket, Instapaper, Firefox, Chrome, and other sources using a RabbitMQ-backed async job system (or a synchronous fallback). When the queue stalls — because the consumer process crashed, RabbitMQ is unreachable, or the job worker ran out of memory — article imports silently pile up without being processed.

The Wallabag REST API can be used to detect queue and import health. First, get an API token:

curl -X POST https://wallabag.yourdomain.com/oauth/v2/token \
  -d "grant_type=password&client_id=YOUR_CLIENT_ID&client_secret=YOUR_SECRET&username=admin&password=yourpassword"

Then check the import entries endpoint:

curl https://wallabag.yourdomain.com/api/entries.json \
  -H "Authorization: Bearer <token>"

For a lightweight Vigilmon check focused on the API layer (which the mobile app and browser extension depend on):

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://wallabag.yourdomain.com/api/version.
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check:
    • Keyword present: wallabag
  5. Set Check interval to 2 minutes.
  6. Save.

The /api/version endpoint returns the current Wallabag version without authentication, confirming the REST API layer is operational — the same layer your import jobs and mobile sync depend on.


Step 4: SSL Certificate Monitoring

Wallabag mobile apps connect over HTTPS and will silently fail to sync if the TLS certificate expires. An expired certificate also breaks browser extension saves and API access from external tools.

Vigilmon monitors SSL certificate validity automatically alongside your HTTP checks. To configure expiry alerts:

  1. Open any of your HTTPS Wallabag monitors in Vigilmon.
  2. Go to Settings → SSL.
  3. Enable Alert when certificate expires within 14 days.
  4. Enable Alert when certificate expires within 30 days for early warning — especially important if you rely on mobile sync.

Sample alert:

⚠️  SSL Warning: wallabag.yourdomain.com
Certificate expires in 10 days (2026-07-09)
Action: renew via Certbot or verify Caddy ACME config

Step 5: Alert Channels

Go to Notifications → New Channel in Vigilmon and configure delivery:

  • Email — immediate alerts to your inbox
  • Webhook — post to Discord or Slack

A Wallabag downtime alert looks like:

🔴 DOWN: wallabag.yourdomain.com/login
Wallabag availability check failed
Region: EU-Central
Triggered: 2026-02-22 19:08 UTC

Recovery:

✅ RECOVERED: wallabag.yourdomain.com/login
Downtime: 15 minutes

Step 6: Status Page

Go to Status Pages → New Status Page in Vigilmon. Add your Wallabag monitors — availability, web UI, and API — and publish. A status page is useful for households or small teams sharing a Wallabag instance, so users know whether an outage is their connection or the server.


What You've Built

| Scenario | How Vigilmon catches it | |---|---| | PHP-FPM / Symfony process crash | Login page returns non-200 | | Database (MySQL/PostgreSQL/SQLite) unreachable | Login keyword check fails | | Web UI rendering broken | UI keyword monitor detects error page | | REST API broken (mobile sync fails) | API version endpoint monitor fails | | Import queue job consumer crashed | API health monitor + manual queue check | | SSL certificate expired or expiring | SSL expiry alert triggers | | Reverse proxy (Nginx/Apache) down | HTTPS monitor detects 502 or timeout | | DNS misconfiguration | HTTP monitor detects DNS resolution failure |


Wallabag gives you ownership of your reading list, free from platform lock-in and algorithmic curation. Keeping your instance healthy means your articles are always there when you're ready to read. Vigilmon handles the monitoring so you never lose an article to a silent server failure.

Start monitoring your Wallabag instance 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 →