tutorial

Memos Monitoring with Vigilmon: Uptime, API Health & Database Checks for Your Self-Hosted Notes

Monitor your self-hosted Memos instance with Vigilmon — check the API status endpoint, verify web UI availability, confirm database connectivity, and get SSL certificate alerts before your notes go offline.

You're mid-thought, capturing a fleeting idea in Memos, and the request spins forever. The page doesn't load. Your notes — journal entries, meeting notes, research snippets — are sitting behind a broken server and you have no idea when it went down or why.

Memos is a lightweight, self-hosted microblogging and note-taking platform that's become a favourite for developers and knowledge workers who want to own their data. It's typically deployed on a single VPS or home server, which means there's no ops team watching it — just you and whatever monitoring you've set up.

Vigilmon gives you the external visibility to catch Memos outages, database failures, and SSL problems before they interrupt your workflow.

What You'll Build

  • A Vigilmon HTTP monitor on Memos' built-in API status endpoint
  • A web UI availability monitor for the frontend
  • A database connectivity check via the API
  • SSL certificate expiry alerts
  • Alert channels to notify you when your notes go offline

Prerequisites

  • A running Memos instance (v0.22+ recommended)
  • A free account at vigilmon.online

Step 1: Monitor the Memos API Status Endpoint

Memos exposes a health/status endpoint at /api/v1/status that returns server metadata without requiring authentication.

Test it:

curl https://your-memos.example.com/api/v1/status

Expected response:

{
  "host": {
    "profile": {
      "mode": "prod",
      "version": "0.22.1"
    }
  },
  "profile": {
    "mode": "prod",
    "version": "0.22.1"
  }
}

A 200 response from this endpoint confirms that the Memos Go server is running and accepting connections. If the process crashes or the database becomes unreachable, this endpoint will return a non-200 or fail to respond entirely.

Set up the Vigilmon monitor:

  1. Log in to Vigilmon and click New Monitor → HTTP.
  2. Set URL to https://your-memos.example.com/api/v1/status.
  3. Set Check interval to 60 seconds.
  4. Set Expected status code to 200.
  5. Under Advanced → Keyword check:
    • Keyword present: "version"
  6. Save the monitor.

Vigilmon now polls your Memos API status every minute from multiple regions.


Step 2: Monitor the Web UI

The API status endpoint confirms the backend process is alive, but the web frontend depends on the full stack being healthy — including the reverse proxy (Nginx, Caddy, Traefik) and static asset serving. A broken vhost configuration or failed proxy can take down the UI while the backend port remains reachable.

Add a web UI monitor:

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://your-memos.example.com/ (your Memos homepage).
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check:
    • Keyword present: Memos (or your custom site title if configured)
    • Keyword absent: 502 Bad Gateway, 503 Service Unavailable
  5. Set Check interval to 60 seconds.
  6. Save.

This monitor validates the complete request chain: DNS → TLS → reverse proxy → Memos application → frontend served correctly.


Step 3: Database Connectivity Check

Memos uses SQLite by default (or PostgreSQL for multi-user deployments). A locked SQLite file, full disk, or corrupted database will prevent Memos from reading or writing notes — even if the process itself is running.

The Memos API status endpoint exercises the database as part of its response. When the database is unavailable, the /api/v1/status endpoint either returns an error body or a non-200 status code.

To make the database check explicit, use the Memos memo list endpoint as a secondary probe:

  1. Click New Monitor → HTTP in Vigilmon.
  2. Set URL to https://your-memos.example.com/api/v1/memo?limit=1.
  3. Set Expected status code to 200.
  4. Under Advanced → Keyword check:
    • Keyword absent: "error", "database"
  5. Save.

This endpoint returns an empty array [] when there are no public memos, which still confirms the database is responding correctly. A database failure returns a 500 with an error body — and Vigilmon fires an alert.


Step 4: SSL Certificate Monitoring

Memos is almost always deployed over HTTPS. A lapsed certificate means your browser refuses to connect, your mobile app stops syncing, and any integrations using the API break silently.

Vigilmon checks the TLS certificate on every HTTPS monitor automatically. Configure expiry warnings:

  1. Open your /api/v1/status monitor in Vigilmon.
  2. Click Settings → SSL Certificate.
  3. Set Alert when certificate expires in less than to 14 days.
  4. Save.

If you're using Let's Encrypt with auto-renewal (certbot, acme.sh, or Caddy's built-in ACME), the renewal usually succeeds automatically — but sometimes it doesn't (DNS propagation issues, port 80 blocked, renewal hook failures). Vigilmon catches the result when auto-renewal fails.


Step 5: Alert Channels

Go to Notifications → New Channel in Vigilmon and configure:

  • Email — alert yourself immediately when Memos goes down
  • Webhook — post to a Discord server, Slack workspace, or home automation system

For Discord, a Memos down alert looks like:

🔴 DOWN: memos.example.com (/api/v1/status)
Status code: 502 (expected 200)
Region: US-East
Triggered: 2026-02-18 14:07 UTC

When Memos recovers:

✅ RECOVERED: memos.example.com
Downtime: 18 minutes

For self-hosted deployments on a home server or low-cost VPS, consider adding a push notification via webhook to a mobile app like Ntfy or Gotify so you're alerted even when you're away from your desk.


Step 6: Status Page

Go to Status Pages → New Status Page in Vigilmon. Add your Memos monitors and publish the page. For a personal instance, this is most useful as a quick reference you can check from your phone when something seems wrong:

<a href="https://vigilmon.online/status/<your-slug>">
  <img src="https://vigilmon.online/badge/<monitor-slug>" alt="Memos Status" />
</a>

What You've Built

| Scenario | How Vigilmon catches it | |---|---| | Memos process crash | API status monitor detects no response or 502 | | Reverse proxy (Nginx/Caddy) failure | Web UI monitor detects 502 Bad Gateway | | SQLite database locked or corrupted | API status and memo list monitors return 500 | | Disk full (writes fail) | API returns error body; Vigilmon keyword check fires | | SSL certificate expired or renewal failed | Vigilmon TLS check fires 14 days before expiry | | DNS misconfiguration (domain stops resolving) | HTTP monitor detects DNS resolution failure | | Server reboot without auto-restart | Process down; API status monitor detects no response |


Your self-hosted Memos instance won't alert you when it goes offline — but Vigilmon will. Catch outages in seconds instead of discovering them when you need your notes most.

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