IMPulse is a ChatOps Incident Management Platform.
It is open source, self-hosted, and IaC-ready. Designed with the KISS principle as a lightweight, single-component utility. IMPulse helps SRE, DevOps, and platform teams create and route incidents, track their status, and coordinate responders at the right time according to escalation chains.
Documentation here: https://docs.impulse.bot/stable/
- Snoozed incidents: freeze incidents to handle them later
- Inhibition rules: suppress child incidents when a parent incident is active
- No chaos: incidents have a lifecycle that automatically prevents duplicate incidents and reduces noise
- Maintenance: mute incidents during maintenance
- Single Sign-On: no extra accounts - sign in with your chat platform
- Templating: Jinja2 templates for incidents, thread messages, and Jira tasks
- Unlimited escalation policies: create as many escalation policies as you need, including nested
- External notifications: connect anything via powerful webhooks
- High availability: run multiple IMPulse instances for reliability
- Minimal UI: simple by design, customizable where it matters
The following steps will start IMPulse using Docker Compose with the built-in web UI, without integrating a chat messenger.
# Create directory structure
mkdir -p impulse/{config,data} && cd impulse
# Get Docker compose file and configuration example
curl -fsSL -o docker-compose.yml https://raw.githubusercontent.com/eslupmi/impulse/develop/examples/docker-compose.none.yml
curl -fsSL -o config/impulse.yml https://raw.githubusercontent.com/eslupmi/impulse/develop/examples/impulse.none.yml
# Run IMPulse
docker compose up -dNow IMPulse is available at http://localhost:5000/.
You can try to send a test alert with:
curl -XPOST -H "Content-Type: application/json" http://localhost:5000/ -d '{"receiver":"webhook-alerts","status":"firing","alerts":[{"status":"firing","labels":{"alertname":"InstanceDown4","instance":"localhost:9100","job":"node","severity":"warning"},"annotations":{"summary":"Instanceunavailable"},"startsAt":"2024-07-28T19:26:43.604Z","endsAt":"0001-01-01T00:00:00Z","generatorURL":"http://eva:9090/graph?g0.expr=up+%3D%3D+0&g0.tab=1","fingerprint":"a7ddb1de342424cb"}],"groupLabels":{"alertname":"InstanceDown"},"commonLabels":{"alertname":"InstanceDown","instance":"localhost:9100","job":"node","severity":"warning"},"commonAnnotations":{"summary":"Instanceunavailable"},"externalURL":"http://eva:9093","version":"4","groupKey":"{}:{alertname=\"InstanceDown\"}","truncatedAlerts":0}'The new firing incident appears in the UI.
Follow the installation guide for production deployment.
