One alert queue for all your monitoring tools.
Grafana, Datadog, Zabbix, Uptime Kuma and Google Cloud each have their own alert list. OpsiMate gives your NOC one screen: every alert, one owner, one place to say "we know, it's handled" — self-hosted, one container, no SaaS.
Get Started · Docs · Demo · Website · Report Bug
👆 An alert with its root cause attached, rated by the on-call engineer. Click for the live demo — no signup.
- 🚨 One queue — alerts from every source, deduplicated by ID, with owner, status and comments on each
- 🔎 Filter, search, group — by severity, source, tag, team, time window; save the view as a dashboard
- 🔕 Mute policies — scheduled or ad-hoc silences that match on any alert field, without deleting anything
- 🏷️ Enrichment rules — add tags, links and runbooks to alerts as they arrive, by pattern
- 🧠 Root cause analysis — your system pushes a root cause per alert via the API; operators rate it 👍/👎 and the verdict is relayed back to the sender
- 📈 Insights — MTTR, MTTA, volume and re-fire trends, per tag, with hourly resolution on short windows
- ☎️ On-call teams and role-based access (admin / editor / viewer)
![]() One queue — every source, one table, one owner per alert |
![]() Insights — volume, MTTR/MTTA and re-fire trends |
Every integration is a webhook — point your tool at OpsiMate and alerts appear in the queue:
|
Grafana |
Datadog |
Zabbix |
Uptime Kuma |
Google Cloud |
Anything else generic webhook |
Each source has a setup guide in the app (Integrations → Add) with the exact webhook URL to paste.
curl -fsSL https://raw.githubusercontent.com/OpsiMate/OpsiMate/main/scripts/start-docker.sh | shAccess the application:
- Backend: http://localhost:3001
- Client: http://localhost:8080
- API reference: http://localhost:3001/api/docs — Swagger UI with "Try it out"; the OpenAPI document is at
/api/openapi.json(setAPI_DOCS_ENABLED=falseto turn both off)
The first account you register becomes the admin.
A Helm chart lives in infrastructure/helm; Terraform for the surrounding infra is in infrastructure/terraform. See the deployment docs.
| Volume | Purpose | Required For |
|---|---|---|
/app/data/database |
SQLite database persistence | Backend + Worker |
/app/data/private-keys |
SSH private keys for authentication | Backend + Worker |
/app/config/config.yml |
Custom configuration | Backend + Worker |
server:
port: 3001
host: "0.0.0.0"
database:
path: "/app/data/database/opsimate.db"
security:
private_keys_path: "/app/data/private-keys"
# Machine-to-machine token: your monitoring tools send it as X-API-Token
# when pushing alerts and root causes. Change it.
api_token: "change-me"Set ENCRYPTION_KEY (credentials at rest — the server warns at startup if it's missing) and JWT_SECRET (session signing) in the environment for anything beyond a laptop.
New here? Start with a good first issue — each one names the exact file and line, and a maintainer reviews within a day or two.
pnpm install
pnpm dev # client on :8080, server on :3001
pnpm run check # lint + prettier — run this before you push; CI runs the same
pnpm testBigger areas where help is welcome: new alert sources, the incident-management work, and the AI investigation agent (see roadmap).
Recently shipped
- 📈 Alert Insights — MTTR / MTTA / volume trends, hourly on short windows
- 🧠 Root cause analysis via API, with operator ratings fed back to the sender
- 🤖 AI-powered alert search
- ⚡ Server-side query engine — the queue stays fast at 10K+ alerts
Next
- 🤖 Built-in investigation agent — one-click root cause that actually looks at your cluster, logs and metrics (HolmesGPT integration, in design)
- 🔄 Incidents — group related alerts into a named incident with a timeline and postmortem
- 📣 Alert routing — escalation to Slack / on-call by severity and team
- Documentation - Comprehensive guides and API reference
- GitHub Issues - Bug reports and feature requests
- Slack Community - Join our discussions and get help
- Website - Learn more about OpsiMate
Built with ❤️ by the OpsiMate team · AGPL-3.0
This project wouldn’t be what it is today without the incredible people who have shared their time, knowledge, and creativity.
A huge thank you to everyone who has helped and continues to help make OpsiMate better every day! 🙌


