tutorial

Monitoring APITable with Vigilmon

APITable is a self-hosted Airtable alternative with a powerful REST and real-time API — but scheduled backup jobs and email digests can fail silently. Here's how to monitor the web UI, REST API health endpoint, authenticated API responses, SSL certificates, and scheduled task heartbeats with Vigilmon.

APITable is a self-hosted collaborative database platform — think Airtable, but with a developer-first REST API, GraphQL, and real-time WebSocket sync. When APITable's web UI goes offline or its task scheduler misses a backup job, teams lose access to their data and backups silently fall behind. Vigilmon keeps continuous watch over the APITable interface, REST API, authenticated endpoints, SSL certificates, and internal scheduled tasks — so you know the moment something breaks.

What You'll Set Up

  • HTTP uptime monitor for the APITable web UI homepage
  • REST API health endpoint monitor (/api/v1/health)
  • Authenticated API response check via the space list endpoint
  • SSL certificate expiry alerts for HTTPS APITable deployments
  • Cron heartbeat for APITable scheduled tasks (backups, email digests, record expiry)

Prerequisites

  • APITable deployed via Docker Compose (recommended) or Kubernetes
  • Web UI accessible over HTTP/HTTPS
  • An APITable API token for authenticated monitoring checks
  • A free Vigilmon account

Step 1: Monitor the APITable Web UI

The APITable homepage is the entry point for all users. If the frontend container crashes or the nginx reverse proxy fails, the entire platform becomes inaccessible even if the backend API is still running.

  1. Log in to vigilmon.online and click Add Monitor.
  2. Set Type to HTTP / HTTPS.
  3. Enter your APITable URL: https://your-apitable-host
  4. Set Check interval to 2 minutes.
  5. Set Expected HTTP status to 200.
  6. Under Keyword check, add APITable or apitable to confirm the frontend is serving the actual application — not an error page.
  7. Click Save.

For Docker Compose deployments, this checks that the web-server container is up and the reverse proxy is routing traffic correctly. A 502 Bad Gateway from nginx — which would pass a status-only check — is caught by the keyword check.


Step 2: Monitor the REST API Health Endpoint

APITable exposes a dedicated health check endpoint at /api/v1/health that returns a JSON status object. This is the cleanest signal for API backend availability.

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter the health endpoint URL: https://your-apitable-host/api/v1/health
  3. Set Check interval to 2 minutes.
  4. Set Expected HTTP status to 200.
  5. Under Keyword check, add "status":"ok" or "healthy" to verify the JSON response body confirms the backend services are up.
  6. Click Save.

The health endpoint checks APITable's core services including the database (MySQL), cache (Redis), and message queue. If any of these dependencies are unhealthy, the health endpoint returns a non-200 status or an error body — both caught by Vigilmon.

To inspect the health response format on your instance:

curl -s https://your-apitable-host/api/v1/health | jq .
# {
#   "status": "ok",
#   "version": "1.x.x"
# }

Step 3: Authenticated API Response Check via Space List

A healthy health endpoint doesn't guarantee that authenticated API calls work end-to-end. Monitor the /api/v1/space endpoint with your APITable API token to verify authenticated requests succeed. This catches authentication failures, database query errors, and permission system issues that wouldn't show up in the unauthenticated health check.

  1. Click Add MonitorHTTP / HTTPS.
  2. Enter the space list URL: https://your-apitable-host/api/v1/space
  3. Set Check interval to 5 minutes.
  4. Set Expected HTTP status to 200.
  5. Under Request headers, add:
    Authorization: Bearer YOUR_APITABLE_API_TOKEN
    
  6. Under Keyword check, add "spaces" to verify the response contains the space list data structure.
  7. Click Save.

Generate a dedicated API token for monitoring in APITable:

  1. Log in to your APITable instance.
  2. Go to Profile → Developer → API Tokens.
  3. Create a token named vigilmon-monitor with read-only access.
  4. Copy the token and add it to the Vigilmon monitor header.

Using a read-only monitoring token prevents the Vigilmon probe from accidentally modifying data while performing health checks.


Step 4: SSL Certificate Alerts for HTTPS APITable

APITable accessed over HTTPS is the standard for any deployment beyond local development. An expired certificate locks all users out of the platform with a browser security warning.

  1. Open the APITable web UI monitor created in Step 1.
  2. Enable Monitor SSL certificate under the SSL section.
  3. Set Alert when certificate expires in less than 21 days.
  4. Click Save.

For Docker Compose deployments using Let's Encrypt with nginx-proxy-acme or Traefik:

# docker-compose.yml — Traefik with auto-TLS
services:
  apitable:
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.apitable.rule=Host(`apitable.yourdomain.com`)"
      - "traefik.http.routers.apitable.tls.certresolver=letsencrypt"

Traefik auto-renews certificates, but renewal depends on port 80 HTTP challenge or DNS challenge availability. The 21-day Vigilmon alert gives you a wide window to diagnose renewal failures before users are affected.

Also add a separate monitor for any custom domain pointing to your APITable instance:

# Check current certificate expiry
openssl s_client -connect your-apitable-host:443 -servername your-apitable-host \
  2>/dev/null | openssl x509 -noout -dates

Step 5: Heartbeat Monitoring for APITable Scheduled Tasks

APITable's internal task scheduler handles automated operations that users depend on without knowing about: database backup jobs, email notification digests, record expiry processing, and attachment cleanup. When these tasks fail silently, teams notice weeks later when a backup is needed or email notifications stop arriving.

Backup Job Heartbeat

  1. In Vigilmon, click Add MonitorCron Heartbeat.
  2. Set the expected ping interval to 1440 minutes (24 hours) for a daily backup job.
  3. Copy the heartbeat URL (e.g., https://vigilmon.online/heartbeat/abc123).

Wrap your APITable backup script to ping the heartbeat on success:

#!/bin/bash
# apitable-backup.sh
set -e

BACKUP_DIR="/backups/apitable/$(date +%Y%m%d)"
HEARTBEAT_URL="https://vigilmon.online/heartbeat/abc123"

mkdir -p "$BACKUP_DIR"

# Back up MySQL
docker exec apitable-mysql mysqldump \
  -u root -p"$MYSQL_ROOT_PASSWORD" apitable \
  > "$BACKUP_DIR/apitable-$(date +%H%M%S).sql"

# Back up uploaded attachments
docker cp apitable-backend-bundler:/app/storage "$BACKUP_DIR/storage"

echo "Backup completed: $BACKUP_DIR"

# Ping heartbeat — only reached if backup succeeded
curl -s "$HEARTBEAT_URL" --max-time 10

Schedule via cron:

# crontab -e
0 2 * * * /opt/apitable/apitable-backup.sh >> /var/log/apitable-backup.log 2>&1

Email Notification Digest Heartbeat

For monitoring the email digest scheduler (APITable sends notification summaries to users on a schedule):

#!/bin/bash
# check-apitable-scheduler.sh
# Verify APITable's scheduler is processing jobs by checking the job queue

HEARTBEAT_URL="https://vigilmon.online/heartbeat/def456"

# Check if APITable scheduler container is running and processing
SCHEDULER_STATUS=$(docker exec apitable-backend-bundler \
  curl -s http://localhost:8081/actuator/health 2>/dev/null | grep -o '"status":"[^"]*"')

if echo "$SCHEDULER_STATUS" | grep -q '"UP"'; then
  curl -s "$HEARTBEAT_URL" --max-time 10
  echo "Scheduler healthy — heartbeat sent"
else
  echo "Scheduler unhealthy: $SCHEDULER_STATUS"
  exit 1
fi

Add a second Cron Heartbeat monitor in Vigilmon with a 60-minute interval for this script.


Step 6: Configure Alert Channels

  1. Go to Alert Channels in Vigilmon and add email, Slack, or a webhook.
  2. For the web UI and health endpoint monitors, set Consecutive failures before alert to 2 — Docker container restarts take 10–30 seconds.
  3. For the authenticated API monitor, set Consecutive failures before alert to 1 — authentication failures need immediate investigation.
  4. For heartbeat monitors, leave the threshold at 1 missed ping — missed backups are always urgent.

Route APITable alerts to the system administrator or ops channel rather than end users. APITable is infrastructure; the ops team should know about failures before users start filing tickets about missing data.


Summary

| Monitor | Target | What It Catches | |---|---|---| | Web UI | https://apitable-host | Frontend crash, nginx failure | | REST API health | /api/v1/health | Backend down, DB/Redis failure | | Authenticated API | /api/v1/space | Auth failure, query errors | | SSL certificate | APITable domain | Certificate expiry | | Backup heartbeat | Heartbeat URL | Missed or failed backup jobs | | Scheduler heartbeat | Heartbeat URL | Email digest, record expiry failure |

APITable gives your team a self-hosted collaborative database with a powerful API — but self-hosted means you own the reliability too. With Vigilmon monitoring the web UI, REST API health, authenticated endpoint availability, SSL certificates, and scheduled task completion, you catch problems before they turn into data loss, missed backups, or user-facing outages.

Monitor your app with Vigilmon

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

Start free →