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:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://your-memos.example.com/api/v1/status. - Set Check interval to 60 seconds.
- Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword present:
"version"
- Keyword present:
- 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:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://your-memos.example.com/(your Memos homepage). - Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword present:
Memos(or your custom site title if configured) - Keyword absent:
502 Bad Gateway,503 Service Unavailable
- Keyword present:
- Set Check interval to 60 seconds.
- 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:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://your-memos.example.com/api/v1/memo?limit=1. - Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword absent:
"error","database"
- Keyword absent:
- 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:
- Open your
/api/v1/statusmonitor in Vigilmon. - Click Settings → SSL Certificate.
- Set Alert when certificate expires in less than to
14 days. - 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.