The Compliance Operating System — See Everything, Continuously

OpenWatch

The compliance operating system for teams managing Linux infrastructure under STIG, CIS, NIST 800-53, PCI-DSS, and FedRAMP. Continuous visibility into compliance posture — not just what is passing now, but what was passing last Tuesday.

STIGCISNIST 800-53PCI-DSSFedRAMP
app.openwatch.dev
OpenWatch Host Management Dashboard

508

Compliance Rules

80+

API Endpoints

5

Frameworks

10 min

Deploy Time

The Problem

Point-in-Time Compliance Is Not Enough

Most compliance tools scan your systems and tell you what is passing today. That is useful, but it is not enough:

  • The posture decays immediately.

    A server that passed STIG on Monday can drift by Wednesday. Without continuous monitoring, you will not know until the next audit.

  • Historical questions are unanswerable.

    "Were we compliant during the assessment window?" requires re-scanning, which only tells you about now, not then.

  • Exceptions live in spreadsheets.

    Approved deviations from policy are tracked in email threads and shared drives, disconnected from the scanning tool.

  • Drift is invisible.

    When a rule that was passing starts failing, no one notices until an assessor finds it.

  • Evidence is assembled, not generated.

    Teams spend days before an audit compiling screenshots and command outputs into binders.

Capabilities

What OpenWatch Does

Continuous Compliance Posture

Scan your fleet on a schedule or let OpenWatch adapt based on host health. Healthy servers scan every 15 minutes, degraded every 5, critical every 2. The posture dashboard updates in real time.

Temporal Compliance Queries

Ask "What was our STIG compliance on February 1st?" and get an answer backed by historical scan data. Compliance posture is not a snapshot; it is a timeline.

Compliance Drift Detection

When a rule that was passing starts failing, OpenWatch raises an alert automatically. Track drift events through acknowledgment to resolution.

Governance and Exception Management

Structured exception workflows: request, approve, reject, time-limit, revoke. All with a full audit trail. No more tracking waivers in spreadsheets.

Audit-Ready Evidence and Exports

Every check captures the exact command, raw output, expected value, and actual value. Export as CSV, JSON, or PDF. Evidence is generated by the scan, not assembled after the fact.

Multi-Framework, Single Scan

One scan maps findings to STIG, CIS, NIST 800-53, PCI-DSS, and FedRAMP simultaneously. The same evidence satisfies multiple assessors.

Architecture

How It All Fits Together

openwatch architecture
┌─────────────────────────────────────────────────────────────┐
│                       You / Your Team                       │
└──────────────────────────┬──────────────────────────────────┘
                           │
┌──────────────────────────▼──────────────────────────────────┐
│  OpenWatch UI (React 19 · Material-UI v7)                   │
│  Dashboard · Posture · Alerts · Exceptions · Reports        │
├─────────────────────────────────────────────────────────────┤
│  OpenWatch API (FastAPI · 80+ endpoints)                    │
│  Auth · RBAC · Scheduling · Audit · Exports                 │
├────────────────────────┬────────────────────────────────────┤
│  Kensa Engine          │  Celery Workers                    │
│  508 YAML rules        │  Async scanning                   │
│  23 remediation types  │  Adaptive scheduling              │
│  Evidence capture      │  Drift detection                  │
├────────────────────────┴────────────────────────────────────┤
│  PostgreSQL 15         │  Redis 7.4                         │
│  All persistent data   │  Task queue + cache               │
└────────────────────────┴────────────────────────────────────┘
                           │
                      SSH (port 22)
                           │
┌──────────────────────────▼──────────────────────────────────┐
│            Your Linux Servers (RHEL 8/9, Rocky, Alma)       │
└─────────────────────────────────────────────────────────────┘

Get Started

Deploy in 10 Minutes

Requirements: Docker (or Podman) and 4 GB RAM.

terminal
git clone https://github.com/hanalyx/openwatch.git
cd openwatch
./start-openwatch.sh --runtime docker --build

Run Your First Scan

  1. 1.Add credentials — Settings > System Credentials > add your SSH user/key
  2. 2.Add a host — Hosts > Add Host > enter IP, select credentials
  3. 3.Scan — Click the play button on the host card

Results appear in under a minute. OpenWatch ships with 508 built-in Kensa rules — human-readable YAML, not XML — ready to go.

Security

Built for Secure Environments

OpenWatch is built for environments where security is the requirement, not an afterthought.

ControlImplementation
Encryption at restAES-256-GCM
AuthenticationRS256 JWT with Argon2id password hashing
Multi-factor authTOTP with backup codes
FIPS 140-2Compliant cryptography (env flag to enable)
AuthorizationRBAC with 6 roles
Audit loggingAll auth, authz, and compliance events
Rate limiting100 req/min per user, 1,000 req/min per IP
TransportTLS 1.2+ with FIPS cipher suites
Target securityAgentless — scans over SSH, nothing installed

API

API-First Design

OpenWatch exposes 80+ REST API endpoints. Everything you can do in the UI, you can automate. Integrate compliance scanning into CI/CD pipelines, SIEM platforms, or custom dashboards.

api-example.sh
# Authenticate
TOKEN=$(curl -s -X POST http://localhost:8000/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"username":"admin","password":"admin"}' | jq -r '.access_token')

# Add a host
HOST_ID=$(curl -s -X POST http://localhost:8000/api/hosts/ \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"hostname":"web-01","ip_address":"192.168.1.10","ssh_port":22}' | jq -r '.id')

# Run a compliance scan
SCAN_ID=$(curl -s -X POST http://localhost:8000/api/scans/aegis \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d "{\"host_id\":\"$HOST_ID\",\"framework\":\"cis-rhel9-v2.0.0\"}" | jq -r '.scan_id')

# Get results
curl -s http://localhost:8000/api/scans/$SCAN_ID/results \
  -H "Authorization: Bearer $TOKEN" | jq '.compliance_percentage'

Comparison

How It Compares

OpenWatch is a compliance platform — it manages the lifecycle of compliance across a fleet, not just the scan itself.

FeatureOpenWatchManual ProcessesPoint-in-Time ScannersEnterprise Platforms
Multi-host scanningOne click, 100+ hostsSSH into each serverScript it yourselfAgent or credentialed scan
Dashboard and historyBuilt-inSpreadsheetsNoneCommercial dashboard
Temporal complianceQuery any dateImpossibleNot availableLimited
Drift detectionAutomatic alertsManual discoveryNot availablePartial
Exception workflowsStructured with audit trailSpreadsheets and emailNot availableNot available
Framework coverageSTIG + CIS + NIST + PCI + FedRAMPWhatever you checkPer-benchmark profilesCIS/STIG/PCI
Remediation23 typed mechanisms with rollbackRun commands by handBasic scriptsNot available
Evidence modelStructured JSON per checkScreenshotsVaries by toolPDF reports
Setup time10 minutesN/AVariesDays + licensing
CostFree (Community) / Paid (Pro)LaborFree - varies$50K+/year

CLI Users

Looking for a CLI?

Kensa is the compliance engine underneath OpenWatch — 508 rules, 23 remediation mechanisms, automatic rollback, all over SSH. If you want a CLI that integrates into scripts and pipelines, start with Kensa.

Open Source

GitHub + Community

OpenWatch is open source under AGPLv3 + Managed Service Exception. Free to use, modify, and self-host.