Your Syncthing node is mid-sync when the disk fills up. The service pauses, files stop propagating between devices, and the web UI shows a warning — but no alert reaches you. By the time you notice, your photos from last week's trip haven't synced to your backup node. For peer-to-peer file sync, silent failures are the most dangerous kind.
Syncthing is an open-source, decentralized file synchronization tool that keeps your files in sync across multiple devices without a central cloud. Vigilmon provides external monitoring that catches Syncthing failures at the REST API, web interface, and sync status level — before a disk full or service crash causes data divergence between your nodes.
This tutorial walks you through monitoring Syncthing end-to-end with Vigilmon.
What You'll Build
- A Vigilmon HTTP monitor on Syncthing's
/rest/system/pingendpoint - A web UI availability monitor with keyword verification
- A sync folder health check via the REST API
- SSL certificate expiry alerts
- Disk space monitoring via Vigilmon heartbeat
Prerequisites
- A running Syncthing instance (GUI typically on port 8384)
- A free account at vigilmon.online
Step 1: Monitor the REST API Ping Endpoint
Syncthing exposes a REST API health endpoint at /rest/system/ping. It returns {"ping": "pong"} when the Syncthing process is operational.
Test it from your terminal:
curl http://localhost:8384/rest/system/ping \
-H "X-API-Key: YOUR_API_KEY"
Expected response:
{"ping": "pong"}
To find your API key: open the Syncthing web UI → Actions → Settings → API Key.
If your Syncthing GUI is exposed behind a reverse proxy with HTTPS, use that URL instead:
curl https://syncthing.yourdomain.com/rest/system/ping \
-H "X-API-Key: YOUR_API_KEY"
Set up the Vigilmon monitor:
- Log in to Vigilmon and click New Monitor → HTTP.
- Set URL to
https://syncthing.yourdomain.com/rest/system/ping. - Set Check interval to 60 seconds.
- Under Advanced → Request Headers, add:
X-API-Key: YOUR_API_KEY
- Set Expected status code to
200. - Under Advanced → Keyword check, add:
- Keyword present:
pong
- Keyword present:
- Save the monitor.
Vigilmon now polls the Syncthing REST API every minute from multiple geographic regions.
Step 2: Monitor Web UI Availability
The /rest/system/ping endpoint confirms the Syncthing process is alive, but doesn't verify the web interface is functional. A misconfigured reverse proxy or a missing static asset can break the UI while the REST API remains healthy.
Add a keyword monitor on the web UI:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to
https://syncthing.yourdomain.com/(your Syncthing dashboard). - Set Expected status code to
200. - Under Advanced → Keyword check, configure:
- Keyword present:
Syncthing
- Keyword present:
- Save.
The Syncthing dashboard HTML includes the application name. If the web server fails to serve the frontend assets or the reverse proxy misconfigures the location block, this check fires independently of the REST API monitor.
Step 3: Monitor Sync Folder Health
Syncthing exposes folder status via its REST API at /rest/db/status. This endpoint returns the sync state for a given folder — whether it's idle, syncing, in error, or out of sync.
Monitor a specific folder's sync status:
- Click New Monitor → HTTP in Vigilmon.
- Set URL to:
Replacehttps://syncthing.yourdomain.com/rest/db/status?folder=YOUR_FOLDER_IDYOUR_FOLDER_IDwith the folder ID shown in the Syncthing UI (e.g.,documentsor the auto-generated ID). - Under Advanced → Request Headers, add:
X-API-Key: YOUR_API_KEY
- Set Expected status code to
200. - Under Advanced → Keyword check:
- Keyword present:
state - Keyword absent:
error
- Keyword present:
- Save.
The response includes a state field (idle, syncing, scanning) and an errors count. A folder stuck in error state or showing persistent out-of-sync items indicates a file conflict, permission issue, or disk problem that Syncthing cannot resolve automatically.
Step 4: Disk Space Monitoring via Heartbeat
Syncthing stops syncing when disk space on any node falls below a configurable threshold (default: 1% free). The service pauses gracefully but does not alert you externally.
Monitor disk space by configuring a heartbeat script on your Syncthing host that only calls Vigilmon when disk space is adequate:
#!/bin/bash
# Run via cron every 5 minutes
THRESHOLD=10 # percent
DISK_FREE=$(df / | awk 'NR==2{print $5}' | tr -d '%')
DISK_USED=$((100 - DISK_FREE))
if [ "$DISK_USED" -lt "$((100 - THRESHOLD))" ]; then
curl -s "https://vigilmon.online/api/v1/heartbeat/YOUR_HEARTBEAT_ID" > /dev/null
fi
In Vigilmon, configure the heartbeat monitor:
- Click New Monitor → Heartbeat in Vigilmon.
- Set Expected interval to 10 minutes.
- Copy the heartbeat URL.
- Install the cron job on your Syncthing host:
*/5 * * * * /path/to/disk-check.sh
When disk usage exceeds 90%, the heartbeat stops firing, and Vigilmon alerts after the expected interval passes. This is the correct pattern: the heartbeat fires to indicate health, not to report a problem.
Step 5: SSL Certificate Monitoring
Syncthing's web GUI exposed via a reverse proxy (Nginx, Caddy, Traefik) requires a valid TLS certificate. An expired certificate locks out the web UI and API access from external tools.
Vigilmon automatically monitors SSL certificate validity on all HTTPS monitors. Configure dedicated expiry alerts:
- Open any of your HTTPS Syncthing monitors in Vigilmon.
- Go to Settings → SSL.
- Enable Alert when certificate expires within 14 days.
- Optionally enable Alert when certificate expires within 30 days for early warning.
You'll receive alerts like:
⚠️ SSL Warning: syncthing.yourdomain.com
Certificate expires in 5 days (2026-07-08)
Note: Syncthing's internal device-to-device sync uses its own self-signed certificates — Vigilmon monitors the public-facing HTTPS endpoint, not the inter-device sync protocol.
Step 6: Alert Channels
Go to Notifications → New Channel in Vigilmon and configure your preferred alert delivery:
- Email — immediate alerts to your inbox
- Webhook — forward to Discord, Slack, or ntfy.sh for mobile push notifications
A Syncthing downtime alert in Discord looks like:
🔴 DOWN: syncthing.yourdomain.com/rest/system/ping (HTTP 502)
Syncthing REST API unavailable
Region: EU-Central
Triggered: 2026-01-15 04:11 UTC
Heartbeat alert when disk fills up:
🔴 HEARTBEAT MISSED: syncthing-disk-space
No heartbeat received in 10 minutes
Last heartbeat: 2026-01-15 04:00 UTC
What You've Built
| Scenario | How Vigilmon catches it |
|---|---|
| Syncthing process crash or OOM kill | /rest/system/ping returns non-200 or times out |
| Reverse proxy (Nginx/Caddy) down | HTTPS monitor detects 502 or TLS error |
| Web UI frontend broken | Keyword monitor on dashboard fails |
| Sync folder in error state | Folder status API monitor detects error keyword |
| Disk space below threshold | Heartbeat stops firing; alert after missed interval |
| SSL certificate expired or expiring | SSL expiry alert triggers at threshold |
Self-hosting Syncthing gives you privacy and control over your file sync — but without external monitoring, a crashed node or full disk silently diverges your data across devices. Vigilmon watches from outside your network, from multiple regions, with no agents to install.
Start monitoring your Syncthing node today — register free at vigilmon.online.