Define alerting rules, route them to email or webhook, suppress duplicates, track acknowledgments. PagerDuty for teams who want on-call without the $17/user/mo.
A non-profit with no DevOps budget downloads the Sentinel binary, sets two environment variables, and runs it on the same Linux box that handles their email. It has been running for three months without intervention. When they need to update, they download the new binary and restart the process.
The moment you store alerts in someone else's cloud, you have accepted their terms, their pricing changes, and their uptime. Sentinel puts that decision back in your hands with a standalone binary that runs anywhere you can run a Linux process.
GET /api/alerts — List all alerts. Supports ?q=keyword for search and ?status=value for filteringPOST /api/alerts — Create a new alert. Send JSON with at least nameGET /api/alerts/{id} — Fetch one alert by IDPUT /api/alerts/{id} — Update fields on an existing alertDELETE /api/alerts/{id} — Remove a alertGET /api/stats — Returns total count and breakdown by statusGET /api/health — Returns {"status":"ok"} for uptime monitoringPoint curl at /api/alerts to interact with Sentinel programmatically. The API follows predictable REST conventions: GET to list or fetch, POST to create, PUT to update, DELETE to remove. The response schema matches the internal data model exactly, so what you see in the dashboard is what the API returns.
Self-hosted alert manager. Self-hosted on your infrastructure. Your data never leaves your server.
curl -fsSL https://stockyard.dev/install.sh | sh -s -- --tool sentinel
PORT=8680 ./sentinel
http://localhost:8680
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 SENTINEL_LICENSE_KEY=stockyard_xxxxxxxxxxxxxxxxxxxx ./sentinel
No cloud connectivity required. The binary validates the key offline with Ed25519 signatures.