Skip to content

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:

ghcr.io/incidentbot/incidentbot:latest

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:

eb129/incidentbot:<tag>

with:

ghcr.io/incidentbot/incidentbot:latest

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:

# Remove this — no longer needed
image:
  suffix: arm64

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:

alembic upgrade head

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 manifest and copy manifest.yaml out of this repository and paste it in to automatically configure the app.
  • Provide SLACK_APP_TOKEN, SLACK_BOT_TOKEN, and SLACK_USER_TOKEN — these can be found within the app's configuration page in Slack.

Matrix

  • Set PLATFORM=matrix and provide MATRIX_HOMESERVER, MATRIX_USER_ID, MATRIX_ACCESS_TOKEN, and MATRIX_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.yaml and deploy it to Kubernetes, Docker, or whichever platform you choose. Check out the installation guide for more details.