Detect, route, page, respond, communicate and learn in one self-hosted platform.
No per-seat pricing. Your incident data stays in your own database.
Website Β Β·Β Documentation Β Β·Β Quick start Β Β·Β Watch product tour (3:34) Β Β·Β What's new in 2.0 Β Β·Β Sponsor
See how OpsKnight connects alert ingestion, incident response, on-call, escalation, ChatOps, customer communication, analytics and post-incident learning.
Watch the full 3:34 tour on YouTube β Β Β·Β Get started in Docker β
|
Authenticated inbound integrations with service-bound routing, provider-specific urgency mapping, deduplication and recovery handling. |
Unified incident workspace with ownership handoffs, real-time activity timelines, response health SLA timers, action items, and 5-Whys postmortems. |
Multi-layer rotation schedules with DST-safe handoffs, temporary overrides, and escalation policies targeting users, schedules, and teams. |
|
Multi-channel paging across Web Push, email, SMS, WhatsApp, and interactive Twilio voice with durable retries and delivery evidence. |
One configurable public or private status page with service health, incidents, maintenance, subscriber notifications, uptime history and publishable postmortems. |
Actionable reliability metrics including MTTA, MTTR, SLA compliance tracking, configurable dashboards, NOC/TV mode, and browser print/PDF export. |
Prerequisites: Git, Docker with Docker Compose, and openssl.
git clone https://github.com/opsknight-labs/OpsKnight.git
cd OpsKnight
cat << 'EOF' > .env
OPSKNIGHT_IMAGE=ghcr.io/opsknight-labs/opsknight:2.0.0
POSTGRES_USER=opsknight
POSTGRES_DB=opsknight_db
POSTGRES_PORT=5432
APP_PORT=3000
NEXTAUTH_URL=http://localhost:3000
NEXT_PUBLIC_APP_URL=http://localhost:3000
EOF
printf 'POSTGRES_PASSWORD=%s\n' "$(openssl rand -hex 32)" >> .env
printf 'NEXTAUTH_SECRET=%s\n' "$(openssl rand -base64 32)" >> .env
printf 'API_KEY_SECRET=%s\n' "$(openssl rand -base64 32)" >> .env
printf 'ENCRYPTION_KEY=%s\n' "$(openssl rand -hex 32)" >> .env
docker compose --env-file .env -f deploy/compose/docker-compose.yml pull
docker compose --env-file .env -f deploy/compose/docker-compose.yml up -d --wait
docker compose --env-file .env -f deploy/compose/docker-compose.yml exec -T opsknight-app \
node scripts/create-bootstrap-code.mjsOpen http://localhost:3000/setup, enter the short-lived bootstrap code, and create the first administrator.
Important
Before exposing OpsKnight, configure its public URL and keep NEXTAUTH_SECRET, API_KEY_SECRET and the encryption key outside source control. They must stay stable across restarts, upgrades and restores β losing the encryption key makes stored provider credentials unreadable. Production startup rejects placeholder and reused secrets.
Production installation β Β Β·Β Upgrading from 1.x β
Command Center gives responders real-time operational pulse across active incidents, open alerts, team workload, and approaching SLA breaches.
Responders get ownership, notes, watchers, action items, SLA timers and a live incident timeline in one workspace.
Manage rotation layers, live coverage, DST-safe handoffs, temporary overrides and multi-tier escalation.
Publish service health, incidents, maintenance, uptime history and post-incident reviews from the same incident workflow.
Install OpsKnight from the browser to get a mobile-first workspace for incidents, on-call, escalation policies, services, teams, status, analytics and postmortems. Push registration is per device, the app follows the system light or dark theme, and offline actions stay authorization-bound when they replay. Set up the mobile PWA β
|
π§± Split production runtime π£ Notification control plane π Twilio voice paging |
π¬ Microsoft Teams ChatOps π‘οΈ Identity and governance π³ Docker Swarm and deployment planning |
Read the full 2.0 changelog β
Monitoring, cloud, uptime, CI/CD, ChatOps, ticketing, notification and identity providers each have a documented contract for authentication, lifecycle actions and recovery. Browse the integration catalog β
OpsKnight ships a built-in Model Context Protocol server, so Claude, ChatGPT, Cursor, VS Code and other MCP assistants can search incidents, check who is on call, explain escalations and draft postmortems from chat.
- One click to turn on. An administrator enables read-only access in Settings β Integrations & ChatOps β MCP (AI Assistants); people then paste the server URL into their assistant. No client IDs, secrets or callbacks to manage.
- Each person signs in. Assistants act with that person's current role and teams, and only with the permissions they ticked on the consent page.
- Changes are reviewed. Changes are off by default. When allowed, routine incident actions run directly, while configuration changes and runbook runs wait for a human to approve the exact, frozen request on an in-app review page.
- Administrators stay in control. See every connection and what it can actually do, turn off individual tools or whole domains, and revoke one connection or all of them.
| Client | Status |
|---|---|
| Claude Code | Tested (v2.1.2, 2026-11-03) |
| Claude apps, ChatGPT, Cursor, VS Code | Expected (2025 revisions supported) |
| Codex CLI, Gemini CLI, Windsurf | Expected (not verified) |
MCP setup guide β Β· What to ask Β· Build an agent Β· Security and data Β· Troubleshooting Β· Permissions and coverage Β· Tool reference
| Topology | Best for | Guide | |
|---|---|---|---|
| Integrated or split, single host | Evaluation and small teams | Docker Compose β | |
| Integrated or split across nodes | Multi-node Docker estates | Docker Swarm β | |
| Schema-validated chart | Production Kubernetes | Helm β | |
| Bases and overlays | GitOps with Argo CD or Flux | Kustomize β |
PostgreSQL 14 or later is required. For production, pin the tested multi-architecture image digest, size the database connection budget and complete the topology's acceptance checklist. Choose a topology β Β· Plan capacity β
Integrated mode runs Web and background work in one process. Split mode gives Web, Scheduler, General Worker, Critical Worker, Bulk Worker and Status Projector explicit ownership so they scale and fail independently. Both use PostgreSQL for durable state and work coordination; only Web receives ingress. Read the architecture guide β
| OpsKnight | Typical per-seat SaaS | |
|---|---|---|
| Where it runs | Your infrastructure | Vendor cloud |
| Incident data | Stays in your PostgreSQL (if you enable MCP, results you request are sent to your AI assistant's vendor; see the MCP security and data guide) | Stored by the vendor |
| Pricing | No seat meter, no software fee | Per-user plans |
| Source | Open under AGPL-3.0-only | Closed |
| Operations | Source-visible runtime, health, metrics and delivery evidence | Vendor-operated runtime |
OpsKnight is an independent project and is not affiliated with PagerDuty, Opsgenie or other vendors.
Encrypted provider credentials with key rotation, independent session and API-key signing secrets, fail-closed inbound verification, role-based authorization, session revocation, OIDC, SCIM, audit evidence and CI security scanning. Compliance tooling helps operators implement and evidence controls; it does not itself confer certification.
Security policy Β Β·Β Production hardening Β Β·Β Report a vulnerability privately
The versioned 2.0 documentation is the source of truth for product behavior, configuration, deployment, integrations and operations.
| Get started | Guides | Operate | API reference | Troubleshooting |
|---|---|---|---|---|
| Install and first incident | Day-to-day workflows | Deploy, scale, upgrade | REST API and keys | Diagnose and recover |
Bug reports, focused feature requests, documentation fixes and code contributions are welcome.
OpsKnight is independently maintained. Sponsorship funds open-source development, release infrastructure, security maintenance and documentation.
OpsKnight 2.0 is distributed under AGPL-3.0-only. OpsKnight 1.4.0 and earlier remain available under the licenses they were published with; see LICENSE-TRANSITION.md.





