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. Remove the init container configuration (Helm only)
Database migrations now run automatically inside the container's entrypoint — no separate init job is needed. If your values.yaml contains an init: block, remove it:
# Remove this — no longer needed
init:
enabled: true
command: ['/bin/sh']
args: ['-c', 'alembic upgrade head']
image:
tag:
5. Remove appMode (Helm only)
The appMode field (bot, api, all) has been removed. The application now runs as a single unified service. Remove it from your values.yaml if present:
To expose the HTTP API (for widgets and health checks), set service.enabled: true instead.
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.