Incident Bot Documentation
Incident Bot is an open-source incident management framework.
The core feature is a ChatOps bot to allow your teams to easily and effectively identify and manage technical incidents impacting your cloud infrastructure, your products, or your customers' ability to use your applications and services.
Migrating from Earlier Versions
Image Registry
The official image has moved from Docker Hub (eb129/incidentbot) to the GitHub Container Registry. Going forward, use:
Update any image: references in your Helm values, Docker Compose files, Kubernetes manifests, or CI pipelines to point to the new registry. The old Docker Hub image will no longer receive updates.
Versioning
Releases now use CalVer (YYYY.MM.DD) rather than semantic versioning. Two additional tags are published alongside each release:
| Tag | Purpose |
|---|---|
latest |
Always points to the most recent build from main |
YYYY.MM.DD |
Date-stamped release — useful for pinning |
sha-<short> |
Exact commit — useful for reproducible deployments |
Multi-arch Images
Images are now published as multi-arch manifests covering linux/amd64 and linux/arm64. Your container runtime selects the correct variant automatically. If you previously configured an architecture suffix (e.g. image.suffix: arm64 in Helm), you can remove it.
Migration Steps
Action required if upgrading from an older version
1. Update your image reference
Replace any reference to the old Docker Hub image:
with:
This applies to Helm values.yaml, Docker Compose files, Kubernetes manifests, and any CI/CD pipelines that reference the image directly.
2. Update your version tag format
If you were pinning to a specific version using semantic versioning (e.g. v2.0.14), switch to one of the new CalVer tag formats:
| Old format | New equivalent |
|---|---|
eb129/incidentbot:v2.0.14 |
ghcr.io/incidentbot/incidentbot:latest |
| pinned semver tag | ghcr.io/incidentbot/incidentbot:YYYY.MM.DD |
| — | ghcr.io/incidentbot/incidentbot:sha-<short> |
3. Remove any architecture suffix (Helm only)
If your values.yaml contains an image.suffix key, remove it — multi-arch is now handled automatically by the image manifest:
4. Run database migrations
The init container image reference has also changed. If you manage this outside of the Helm chart, update it to ghcr.io/incidentbot/incidentbot:latest and ensure the migration command runs before the application starts:
Core Technologies
- Pydantic is used to handle data validation and type safety across the platform.
- Pydantic Settings is used to handle application configuration settings.
- SQLModel is used to handle the relationship between application objects and backend databases.
- FastAPI is used to handle the API.
Features at a Glance
- Create a channel in Slack or Matrix to gather resources and handle incidents.
- Digest channel to keep the rest of the organization up to date with incidents at all times.
- Define your own roles, severities, and statuses, or use ones configured right out of the box.
- Keep stakeholders updated using dynamic updates.
- Craft a postmortem document using an integration with Confluence that allows you to use your own templates.
- Create issues in Jira or GitLab directly from incident channels.
- Page teams in PagerDuty.
- Manage Statuspage or Phare status page incidents directly from incident channels.
- Create Zoom meetings for each incident to keep communications organized.
- Embeddable incident status widgets via the built-in API.
Integrations
For more information on integrations, check out the integrations documentation.
Quick Start
Slack
- Create a Slack app for this application.
- Select
from an app manifestand copymanifest.yamlout of this repository and paste it in to automatically configure the app. - Provide
SLACK_APP_TOKEN,SLACK_BOT_TOKEN, andSLACK_USER_TOKEN— these can be found within the app's configuration page in Slack.
Matrix
- Set
PLATFORM=matrixand provideMATRIX_HOMESERVER,MATRIX_USER_ID,MATRIX_ACCESS_TOKEN, andMATRIX_DIGEST_ROOM_ID. See the configuration guide for details.
Both platforms
- You'll need a Postgres instance to connect to.
- Create a channel (or room) to serve as your incident digest — something like
#incidents. - Configure the app using
config.yamland deploy it to Kubernetes, Docker, or whichever platform you choose. Check out the installation guide for more details.