tutorial

How to Monitor AppFlowy with Vigilmon (Health Checks, Sync Service, and SSL Alerts)

AppFlowy is an open-source alternative to Notion — a collaborative workspace for documents, databases, and project management that you can run entirely on yo...

AppFlowy is an open-source alternative to Notion — a collaborative workspace for documents, databases, and project management that you can run entirely on your own servers. When your team depends on AppFlowy for daily work, an outage means blocked projects, lost context, and frustrated contributors who can't access their notes.

This tutorial shows you how to set up robust monitoring for a self-hosted AppFlowy instance using Vigilmon — covering the web UI, the real-time sync service, and SSL certificate health.


Why monitoring matters for AppFlowy

AppFlowy Cloud (the self-hosted server component) consists of several pieces that can fail independently:

  • The AppFlowy Cloud API — handles authentication, document storage, and user management. If the API goes down, clients can't sync changes and new users can't sign in.
  • The real-time collaboration service — AppFlowy uses a WebSocket-based sync service so multiple users can edit the same document simultaneously. If the sync port goes down, users can still open documents but changes from other collaborators stop appearing.
  • PostgreSQL and object storage — document content, file attachments, and user data are split across a relational database and object storage. A failure in either layer causes partial or total data unavailability.
  • The web interface — AppFlowy Cloud ships a web client. If the static assets are misconfigured or the server errors out, teams without the desktop client are completely locked out.

External monitoring catches failures before your team notices them during active work hours.


What you'll need


Step 1: Confirm the AppFlowy health endpoint

AppFlowy Cloud exposes a health check at /health. Verify it responds before creating your monitor:

curl -i https://appflowy.your-domain.com/health

A healthy response looks like:

HTTP/2 200
{"message":"AppFlowy Cloud is running"}

If your AppFlowy Cloud instance is behind a reverse proxy, make sure /health is not protected by your authentication layer — it needs to be publicly reachable for Vigilmon to probe it.


Step 2: Set up HTTP monitoring for the health endpoint

  1. Log in to vigilmon.online and go to Monitors → New Monitor
  2. Choose HTTP / HTTPS as the monitor type
  3. URL: https://appflowy.your-domain.com/health
  4. Check interval: 1 minute
  5. Under Expected response:
    • Status code: 200
    • Response body contains: "AppFlowy Cloud is running"
  6. Save the monitor

This catches the most severe failure mode — the entire AppFlowy Cloud backend going unreachable.


Step 3: Monitor the web UI separately

The health endpoint confirms the backend is alive, but the web client has its own build pipeline and asset delivery. Add a dedicated monitor for the web interface:

  1. Add a second HTTP / HTTPS monitor
  2. URL: https://appflowy.your-domain.com (or your web client domain if it's separate)
  3. Expected status code: 200
  4. Assign the same alert channel

This catches broken frontend deploys, misconfigured CDN origins, or static-asset serving failures that leave users with a blank page.


Step 4: Monitor the real-time sync service via TCP

AppFlowy's real-time collaboration layer communicates over a dedicated TCP port (default: 8433 for the WebSocket sync service in AppFlowy Cloud). If this port goes unreachable, connected clients stop syncing — but the HTTP health check still returns 200 because the API itself is fine.

  1. Add a third monitor: TCP Port type
  2. Host: appflowy.your-domain.com
  3. Port: 8433 (adjust to your actual sync port if you've changed the default)
  4. Save the monitor

When the TCP check fails, Vigilmon alerts you even though the HTTP health endpoint may still be green. This is the only way to catch sync service crashes without polling the application logs.


Step 5: Set up SSL certificate monitoring

AppFlowy's desktop and mobile clients validate TLS certificates strictly. A lapsed or misconfigured certificate will prevent all clients from connecting — even if the server itself is healthy.

  1. Go to Monitors → New Monitor
  2. Choose SSL Certificate
  3. Domain: appflowy.your-domain.com
  4. Alert thresholds: warn at 30 days, critical at 7 days

If you're also hosting the sync service on a separate subdomain, add a second SSL monitor for that domain.


Step 6: Configure alert channels

  1. Go to Alert Channels → Add Channel
  2. Add a Slack, email, or webhook alert channel
  3. Assign all monitors to the channel

Recommended alert policy for AppFlowy:

| Severity | Trigger | Action | |----------|---------|--------| | Critical | /health returns non-200 for 2+ minutes | Page on-call immediately | | High | TCP sync port unreachable | Alert team — collaboration is broken | | Medium | Web UI returns non-200 but API is healthy | Check frontend deploy | | Warning | SSL cert expires in < 30 days | Schedule renewal |


Monitoring summary

| Monitor | Type | What it catches | |---------|------|-----------------| | https://appflowy.your-domain.com/health | HTTP | Backend crash, DB connection failure | | https://appflowy.your-domain.com | HTTP | Web UI failure, bad CDN config | | appflowy.your-domain.com:8433 | TCP | Real-time sync service crash | | appflowy.your-domain.com SSL | Certificate | Imminent TLS expiry |


What's next

  • Heartbeat monitors — AppFlowy Cloud runs background jobs for document cleanup and storage management. Add heartbeat monitors so Vigilmon alerts when scheduled tasks stop reporting in.
  • Status page — publish a Vigilmon status page for your organization so team members can check whether the workspace is down before filing a support ticket.
  • Multiple regions — Vigilmon checks from multiple geographic regions by default, which helps you distinguish a true outage from a regional network issue.

Get started free at vigilmon.online — no credit card, monitors start running in under a minute.

Monitor your app with Vigilmon

Free plan — 5 monitors, no credit card required. Up and running in 60 seconds.

Start free →