Watch directories for changes, trigger webhooks or shell commands when files are modified. The inotify wrapper with a dashboard. No cron, no polling — event-driven.
A devops team integrates Watcher into their CI pipeline. A post-deploy hook creates a watchconfig record via the API. The stats endpoint feeds a Grafana panel. When something goes wrong, the team searches watch configs by keyword to find related records without switching tools.
Running a file change monitor should not require a Kubernetes cluster, a managed database, and a DevOps team to keep it running. Watcher is one file. Download it, run it, point your browser at it. That is the entire setup.
GET /api/watch_configs — List all watch configs. Supports ?q=keyword for search and ?status=value for filteringPOST /api/watch_configs — Create a new watchconfig. Send JSON with at least nameGET /api/watch_configs/{id} — Fetch one watchconfig by IDPUT /api/watch_configs/{id} — Update fields on an existing watchconfigDELETE /api/watch_configs/{id} — Remove a watchconfigGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringOn first launch, Watcher initializes a WAL-mode SQLite database and starts an HTTP server. The web dashboard and API share the same port. Creating a watchconfig is a POST with JSON — the only required field is name. The response includes the generated ID and timestamp. Listing supports search, filtering, and returns items in reverse chronological order.
Self-hosted file change monitor. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool watcher
PORT=8760 ./watcher
http://localhost:8760
Single binary. Embedded SQLite. No Docker. No database. No dependencies.
Your license key arrives by email within 5 minutes of checkout. Set it as an environment variable and restart the binary.
export WATCHER_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./watcher
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.