Skip to content

Repository files navigation

IMPulse IMPulse

Website Documentation Container Community Helm

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/

IMPulse incident management interface

Features

  • 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

Quick start

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 -d

Now IMPulse is available at http://localhost:5000/.

Test alert

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.