Your Linkding instance went down overnight. Every bookmark you've saved over the past two years is inaccessible. Your browser extension is silently failing to save new links because the API is unreachable — and those saves are being dropped, not queued. You find out when you try to retrieve a link you bookmarked last week and it's gone.
Linkding is a minimalist self-hosted bookmark manager with a REST API, browser extensions, and import/export support. Vigilmon gives you continuous external monitoring so Linkding failures surface in seconds — not after you lose a week of bookmarks.
This tutorial covers monitoring Linkding end-to-end with Vigilmon.
What You'll Build
- A Vigilmon HTTP monitor on Linkding's health endpoint
- A web UI availability monitor
- A REST API endpoint availability check
- SSL certificate expiry alerts
- Alert channels for immediate notification
Prerequisites
- A running Linkding instance (default port 9090, typically behind a reverse proxy on HTTPS)
- A free account at vigilmon.online
Step 1: Monitor the Health Endpoint
Linkding exposes a health check endpoint at /health. This endpoint returns a plain OK response when the Django application and the PostgreSQL (or SQLite) database are both reachable.
Test it:
curl https://linkding.yourdomain.com/health
Expected response:
OK
A 200 OK confirms that the Gunicorn/uWSGI server is running and the database backend is healthy. This is the fastest signal for a process crash or database failure.
Set up the Vigilmon monitor:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://linkding.yourdomain.com/health. - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword present:
OK
- Keyword present:
- Save the monitor.
Vigilmon now polls your Linkding health layer every minute from multiple geographic regions.
Step 2: Monitor Web UI Availability
The health endpoint verifies the backend, but the Django-rendered bookmark interface can fail independently. A misconfigured STATIC_ROOT, a broken Nginx config for serving static files, or a missing environment variable can leave the UI broken while the health endpoint returns 200.
Add a UI monitor:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://linkding.yourdomain.com/(your Linkding login page). - Set Expected status code to
200. - Under Advanced → Keyword check, configure:
- Keyword present:
linkding - Keyword absent:
Server Error,Bad Gateway
- Keyword present:
- Save.
This confirms the full Django request pipeline is functioning — template rendering, static asset serving, and session handling.
Step 3: Monitor the REST API Endpoint
Linkding's REST API (/api/bookmarks/) is used by browser extensions, mobile clients, and automation scripts to save and retrieve bookmarks. If the API endpoint breaks while the UI stays up, browser extension saves fail silently and third-party integrations stop working.
The API health can be verified by sending a request that exercises the endpoint without requiring authentication to produce a meaningful response:
# Unauthenticated request returns 401, confirming the API is up and processing requests
curl -I https://linkding.yourdomain.com/api/bookmarks/
Expected response:
HTTP/2 401
A 401 here is the correct signal: it proves the API is running and enforcing authentication. A 502 or 000 indicates the reverse proxy or application is down.
Set up the API monitor in Vigilmon:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://linkding.yourdomain.com/api/bookmarks/. - Set Expected status code to
401. - Set Check interval to 2 minutes.
- Save.
This gives you dedicated visibility into the API layer that browser extensions depend on.
Step 4: SSL Certificate Monitoring
Linkding is typically served over HTTPS via Nginx or Caddy. An expired certificate breaks browser extension saves — the extension will silently fail or throw a TLS error — and may not be immediately obvious if you're not actively visiting the web UI.
Vigilmon monitors SSL certificate validity automatically. To configure expiry alerts:
- Open any of your HTTPS Linkding monitors in Vigilmon.
- Go to Settings → SSL.
- Enable Alert when certificate expires within 14 days.
- Enable Alert when certificate expires within 30 days for early warning.
Sample alert:
⚠️ SSL Warning: linkding.yourdomain.com
Certificate expires in 7 days (2026-07-06)
Action: renew via Certbot or check Caddy ACME renewal
Step 5: Alert Channels
Go to Notifications → New Channel in Vigilmon and configure delivery:
- Email — immediate alerts to your inbox
- Webhook — post to a Discord or Slack channel
A Linkding downtime alert looks like:
🔴 DOWN: linkding.yourdomain.com/health
Linkding health check failed
Region: EU-West
Triggered: 2026-03-05 11:42 UTC
Recovery:
✅ RECOVERED: linkding.yourdomain.com/health
Downtime: 4 minutes
Step 6: Status Page
Go to Status Pages → New Status Page in Vigilmon. Add all three Linkding monitors — health, web UI, and API — and publish. A shared status page lets you quickly verify service state without logging into the server.
What You've Built
| Scenario | How Vigilmon catches it |
|---|---|
| Linkding process crash | /health returns non-200 |
| Database (PostgreSQL/SQLite) unreachable | Health keyword check fails |
| Web UI broken (static files, templates) | Web UI keyword monitor fails |
| REST API broken (browser extension saves fail) | API monitor detects non-401 response |
| Reverse proxy (Nginx/Caddy) down | HTTPS monitor detects 502 or timeout |
| SSL certificate expired or expiring | SSL expiry alert triggers |
| DNS misconfiguration | HTTP monitor detects DNS resolution failure |
Linkding is a clean, dependency-light bookmark manager that keeps your links under your control. Keeping your instance healthy means your browser extension always saves successfully and your bookmarks are always retrievable. Vigilmon handles the monitoring so you can focus on curating the web.
Start monitoring your Linkding instance today — register free at vigilmon.online.