Skip to content

Latest commit

 

History

495 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ComplianceGuard

Version License Frameworks Tests Platform CI

Cloud-first compliance platforms like Vanta, Drata, and Sprinto automate evidence through SaaS, cloud, identity, and MDM/EDR integrations (Intune, Jamf, Okta, CrowdStrike, and similar). That is useful, but it misses what happens on the machines themselves. Password policies, firewall rules, event logs, running services, and local user accounts live on the endpoint, not in AWS, and most MDM integrations only scratch that surface.

ComplianceGuard lives on the endpoint too. It collects evidence directly from Windows, macOS, and Linux, scores it against SOC 2 Type II, ISO/IEC 27001:2022, HIPAA Security Rule, and GDPR controls, and tells you exactly where the gaps are, across all four frameworks in a single collection pass. Run it as a desktop app or deploy the web version with Docker: self-hosted, your organization controls the infrastructure and data access; managed, your evidence stays on the endpoints until you choose to sync.

How it works: the desktop app collects OS-level evidence → maps it to compliance controls → scores your readiness → optionally syncs to a multi-machine cloud dashboard.

                    ┌─────────────┐
  Windows OS ──────>│ Collect     │──────> SQLite / PostgreSQL
  Event logs        │ Evidence    │        (local or hosted)
  Registry          └──────┬──────┘
  Services                 │
  Firewall                 ▼
  Users            ┌─────────────┐
  Network          │ Evaluate    │──────> Score + Gaps
  Software         │ Compliance  │        per control
                   └──────┬──────┘
                          │
                          ▼
                   ┌─────────────┐
                   │ Report      │──────> PDF / Dashboard
                   └─────────────┘

Demo

ComplianceGuard.SAAS.Video.mp4

Scheduled endpoint evidence collection, evidence coverage tracking, and PDF evidence reports on demand. Self-hosted and privacy-first.

Screenshots

Dashboard

ComplianceGuard Dashboard

Your real-time evidence coverage score after a full evaluation, with one-click access to collect evidence, run an evaluation, upload manual evidence, and export a PDF report.

Control Heatmap

Control Heatmap

Every control at a glance — the heatmap follows your selected framework (SOC 2 criteria, ISO Annex A, HIPAA safeguards, or GDPR articles): passing, partial, or failing, with per-control gap details and inline remediation scripts where a script genuinely exists.

Evidence Coverage Trend

Score Trend

Track your readiness over time on the History screen, with evidence coverage zone bands and per-framework tabs across SOC 2, ISO 27001, HIPAA, and GDPR.

Cloud Dashboard

Cloud Dashboard

Monitor every machine from one centralized web dashboard: evidence coverage scores, fleet-level stats, and last-sync status for all your endpoints.

Framework Browser

Framework Browser

Browse the full control library offline: SOC 2 Type II (43 criteria), ISO/IEC 27001:2022 (93 controls), HIPAA (47), and GDPR (38), with control objectives and implementation guidance.

Who Is This For?

  • Security and IT teams preparing for SOC 2, ISO 27001, HIPAA, or GDPR audits
  • Companies that need endpoint-level evidence, not just cloud infrastructure scanning
  • Teams requiring self-hosting, air-gapped deployment, or strict data residency
If you are... Start with Because
A startup preparing for an audit Free, then Pro Collect and score everything at no cost; upgrade when you need gap details and PDF reports
A government contractor Self-hosted Enterprise Data sovereignty requirements
NHS / healthcare Self-hosted Enterprise NHS DSPT, patient data governance
A legal firm Self-hosted Pro/Enterprise Client confidentiality, SRA
Financial services Self-hosted Enterprise FCA data residency
An accounting firm Self-hosted or Managed Pro HMRC data, GDPR Article 32
An IT consultant or MSP Self-hosted Pro Manage multiple client machines from one dashboard
Running air-gapped or classified networks Desktop only Zero network traffic, works fully offline
A team without server ops capacity Managed Pro We run the server; you install the desktop app and connect

Not a Good Fit If

  • You only need cloud compliance; Vanta or Drata cover that better
  • You can't install software on the machines being audited. Evidence collection runs on the endpoints themselves, so the desktop app has to be installed there. Managed hosting removes the server work; it doesn't remove the endpoint app.

Choose Your Privacy Level

Every organisation has different requirements. ComplianceGuard gives you full control over where your data lives.

Maximum Privacy: Self-Host

"My data never leaves my infrastructure."

Deploy the web dashboard on your own server (Railway, Render, DigitalOcean, or any VPS). Your compliance data stays entirely within your control. Nobody, not even ComplianceGuard, can access it. A good fit for regulated industries, government contractors, legal firms, healthcare, and air-gapped environments.

You manage the server. You own the data. You pay less.

Maximum Convenience: Hosted by Us

"I just want it to work without managing servers."

Contact us to set up a hosted instance. Install the desktop app on your machines, enter your credentials, and you are running. We handle uptime, backups, updates, and infrastructure. Your endpoint evidence stays on your machines until you choose to sync.

We manage the server. You own the data. Zero setup required.

Either way, the endpoint evidence collected from your machines never leaves them until you explicitly choose to sync it to the dashboard.


Quick Start

Option A: Windows Installer (Recommended)

Download ComplianceGuard-Setup.exe from the latest release, run the installer, and launch from the Start Menu.

Requirements: Windows 10/11 (64-bit)

Auto-updates: packaged builds check for updates shortly after launch and every 4 hours, download them automatically, and install on quit. Release integrity and signing details live in docs/release-and-signing.md. Portable builds don't auto-update; use the Setup installer.

Desktop: Linux (AppImage + .deb)
  1. Download ComplianceGuard-{version}.AppImage (portable, no install) or ComplianceGuard_{version}_amd64.deb (Debian/Ubuntu installer) from the latest release
  2. AppImage: chmod +x ComplianceGuard-*.AppImage && ./ComplianceGuard-*.AppImage (or install AppImageLauncher for desktop integration)
  3. .deb: sudo apt install ./ComplianceGuard_{version}_amd64.deb, then launch ComplianceGuard from your application menu

Auto-updates: AppImage builds check for updates and install them on quit, like the Windows Setup build. .deb installs are fixed to the installed version — reinstall the new .deb from each release to upgrade.

Requirements: 64-bit Linux with a desktop environment; glibc 2.31+. Some distros need libfuse2 to run AppImages (sudo apt install libfuse2).

Desktop: macOS (unsigned)
  1. Download ComplianceGuard-{version}-arm64.dmg (Apple Silicon) or ComplianceGuard-{version}.dmg (Intel) from the latest release
  2. Open the DMG and drag ComplianceGuard to Applications
  3. First launch (one time only):
    • Right-click the app in Applications → Open → Open Anyway, or
    • Run in Terminal: xattr -cr /Applications/ComplianceGuard.app
  4. Launch normally from Applications or Spotlight thereafter

Code signing will be enabled in a future release, removing this step.

Requirements: macOS 12 Monterey or later · Intel or Apple Silicon

Option B: One-Click Setup (Development)

git clone https://github.com/Egyan07/ComplianceGuard.git
  1. Double-click install.bat: it installs all dependencies, sets up the database, and creates start.bat
  2. Double-click start.bat: choose Desktop or Web mode and you are running

Prerequisites: Windows 10/11, Node.js 18+, Python 3.10+

Option C: Manual Setup

Desktop (Electron)
git clone https://github.com/Egyan07/ComplianceGuard.git
cd ComplianceGuard
npm install && cd frontend && npm install && cd ..
npm run dev
Web: Self-Hosted (Docker)
git clone https://github.com/Egyan07/ComplianceGuard.git
cd ComplianceGuard
cp .env.example .env          # configure your settings
docker-compose up -d

App at http://localhost (nginx proxy). Requires Docker. In development (docker-compose -f docker-compose.yml -f docker-compose.dev.yml up), the backend is also reachable directly at http://localhost:8000 with interactive API docs at http://localhost:8000/docs. Production deployments serve the API only through nginx and disable the public API docs and OpenAPI schema.

One-click Railway deploy:

Deploy on Railway

Web: Local Development (without Docker)
# Terminal 1: Backend
cd backend
pip install -r requirements.txt
python -m uvicorn app.main:app --reload --port 8000

# Terminal 2: Frontend
cd frontend
npm install
npm run dev

App at http://localhost:5173. Create an account on first run.

Web: Hosted by Us

Contact us at [email protected] to set up a managed hosted instance. We handle deployment, uptime, backups, and updates. You just install the desktop app and connect.

Build Installers
npm run package         # Windows (NSIS + portable) → dist/
npm run package:mac     # macOS (Intel + Apple Silicon DMGs) → dist/
npm run package:linux   # Linux (AppImage + .deb) → dist/

What Makes This Different

ComplianceGuard Vanta / Drata / Sprinto
Where it runs On your machine or self-hosted In the cloud
What it scans OS-level: event logs, registry, services, firewall, users Cloud infra plus SaaS/identity/MDM integrations (Intune, Jamf, Okta, CrowdStrike, etc.)
Data residency Self-hosted: your organization controls the infrastructure and data access Stored on vendor servers
Self-hosted option ✅ Full control Vendor-hosted; some offer self-hosted for select plans
Air-gapped networks Desktop works completely offline Requires internet connectivity
Cost Free tier available, Pro from $149/mo $8k to $10k/year
Compliance frameworks SOC 2 (43 criteria), ISO/IEC 27001:2022 (93), HIPAA (47), GDPR (38) Broad multi-framework coverage (SOC 2, ISO 27001, HIPAA, PCI DSS, GDPR and more; varies by plan)
Source-available ✅ BSL 1.1 (not OSI open source) ❌ Closed source

Cloud-first platforms automate evidence through SaaS, cloud, identity, and MDM integrations. ComplianceGuard collects evidence directly from endpoints and can run fully offline or self-hosted. Use both and you have covered the full stack.

They collect through their cloud. We collect on your machine — and it can stay there.

What It Collects

ComplianceGuard pulls 8 categories of evidence from Windows, macOS, and Linux:

Category What's Collected Maps To
Event Logs Security, System, Application logs CC7.1, CC4.1
Security Settings Password policies, audit policies, registry options CC6.1, CC6.2, CC6.3
Services Defender, Windows Update, Firewall, Event Log status A1.1, CC7.1
Firewall Domain, Private, Public profile configuration CC6.6, CC6.1
User Accounts Local accounts, admin group membership CC6.2, CC6.3
Network Interfaces, open ports, routing tables CC6.6, CC6.7
Software Registry-based inventory of installed programs CC8.1, CC7.1
File Permissions ACLs on critical system paths CC6.1, CC6.3

Each evidence item is SHA-256 hashed for integrity and stored with full audit logging.

Compliance Frameworks

SOC 2 Controls

43 criteria from the 2017 Trust Services Criteria (33 Common Criteria plus the category-specific supplements: Availability A1.1–A1.3, Confidentiality C1.1–C1.2, Processing Integrity PI1.1–PI1.5), scored by evidence coverage with equal weighting.

What the score means: it measures whether the required evidence types for each criterion were collected — it is not a legal or audit determination of compliance. Criteria classified manual_upload (e.g. board oversight, policy attestations) stay not_assessed until you upload the corresponding manual evidence; endpoint scans alone cannot satisfy them.

Scoring uses the canonical coverage model (one engine, shared by the web API and the desktop app, driven by the framework definitions in shared/frameworks/): each control scores as the share of its required evidence types that are present — 100% → compliant, ≥50% → partial, >0% → non_compliant, none → not_assessed. The overall 0–100 score is the mean over all controls; not_assessed controls count as 0, so a sparse evidence set honestly reflects evidence coverage rather than inflating readiness. The same model applies to ISO 27001, HIPAA, and GDPR: framework differences are data, not separate scoring logic.

Common Criteria (CC): 33 criteria
ID Criterion
CC1.1 Integrity and Ethical Values
CC1.2 Board Oversight and Independence
CC1.3 Organizational Structure and Reporting Lines
CC1.4 Commitment to Competence
CC1.5 Individual Accountability
CC2.1 Quality of Information
CC2.2 Internal Communication
CC2.3 External Communication
CC3.1 Objectives Specification
CC3.2 Risk Identification and Analysis
CC3.3 Fraud Consideration
CC3.4 Change Risk Assessment
CC4.1 Ongoing and Separate Evaluations
CC4.2 Evaluation and Communication of Deficiencies
CC5.1 Selection of Control Activities
CC5.2 General Controls over Technology
CC5.3 Deployment Through Policies and Procedures
CC6.1 Logical Access Security
CC6.2 User Registration and Credential Management
CC6.3 Access Authorization and Modification
CC6.4 Physical Access Restrictions
CC6.5 Disposal of Physical Assets
CC6.6 Protection Against External Threats
CC6.7 Restriction of Information Transmission
CC6.8 Unauthorized and Malicious Software Controls
CC7.1 Configuration and Vulnerability Detection
CC7.2 Anomaly Monitoring
CC7.3 Security Event Evaluation
CC7.4 Incident Response
CC7.5 Recovery from Security Incidents
CC8.1 Change Management
CC9.1 Business Disruption Risk Mitigation
CC9.2 Vendor and Business Partner Risk
Availability (A): 3 criteria
ID Criterion
A1.1 Processing Capacity Management
A1.2 Environmental Protections, Backup, and Recovery Infrastructure
A1.3 Recovery Plan Testing
Confidentiality (C): 2 criteria
ID Criterion
C1.1 Identification and Maintenance of Confidential Information
C1.2 Disposal of Confidential Information
Processing Integrity (PI): 5 criteria
ID Criterion
PI1.1 Processing Information Quality
PI1.2 Input Completeness and Accuracy
PI1.3 System Processing Controls
PI1.4 Output Delivery
PI1.5 Storage of Inputs and Outputs

ISO/IEC 27001:2022

The complete Annex A: 93 controls across the four 2022 themes — A.5 Organizational (37), A.6 People (8), A.7 Physical (14), A.8 Technological (34). Available via the web API at GET /api/v1/iso27001/framework/controls. Includes control objectives, implementation guidance, and risk levels. Browse by theme (/by-category/A.8), search by keyword, or fetch by ID. The desktop app includes a read-only Browse Frameworks tab for offline reference.

Evaluations produced against the withdrawn ISO/IEC 27001:2013 remain viewable and render from the archived 2013 definition (shared/frameworks/iso27001_2013_archived.yaml); new evaluations use 2022.

HIPAA Security Rule

47 safeguards across all five 45 CFR Part 164 sections (§164.308–§164.316). Available via GET /api/v1/hipaa/framework/controls. Each safeguard includes its specification type (Required or Addressable) and implementation guidance aligned with HHS guidance. Also browseable offline in the desktop app's Browse Frameworks tab.

What HIPAA coverage means: evidence coverage supports Security Rule readiness but does not determine HIPAA compliance. Required and Addressable implementation specifications must be evaluated in the context of the organization's own risk analysis, and the Privacy Rule and Breach Notification Rule are outside the scope of endpoint evidence.

GDPR (EU) 2016/679

38 obligations across the operational chapters: principles (Art. 5–9), data subject rights (Art. 12–22), controller and processor duties (Art. 24–37), and international transfers (Art. 44–47). Available via GET /api/v1/gdpr/framework/controls. Each obligation includes its source article, GDPR chapter, control objective, and implementation guidance. Browse by article (/by-category/32), search by keyword, or fetch by ID (/framework/controls/Art.32.1). Fully supported in the desktop app too: scoring, Browse Frameworks, and PDF reports.

What GDPR coverage means: it is an evidence-readiness mapping, not a determination of GDPR compliance. Technical collection can support some obligations — such as security of processing under Article 32 — but obligations involving lawful basis, data-subject rights, transparency, contracts, DPO appointment, and records of processing generally require manual organizational evidence and legal review.

Architecture

Click to expand

ComplianceGuard runs in two modes: Desktop (Electron + SQLite) for offline use, and Web (FastAPI + PostgreSQL + React) for hosted deployments. The frontend auto-detects which mode it's in.

┌──────────────────────────────────────────────────────────────┐
│  DESKTOP MODE (Electron)                                      │
│                                                               │
│  ┌─────────────────┐  ┌───────────────────────────────────┐  │
│  │ Evidence        │  │ Compliance Engine                  │  │
│  │ Processor       │  │ SOC 2 / ISO 27001 / HIPAA / GDPR scoring  │  │
│  │ Collect · Store │  │ gap analysis · recommendations     │  │
│  └────────┬────────┘  └───────────────┬───────────────────┘  │
│           └──────────┬────────────────┘                       │
│                      ▼                                        │
│           ┌─────────────────────┐                             │
│           │  SQLite + Audit Log │                             │
│           └─────────────────────┘                             │
│                      ▲                                        │
│           ┌──────────┴──────────┐  ┌────────────────────┐    │
│           │ Platform Collector  │  │ License Manager     │    │
│           │ Win/macOS/Linux     │  │ Ed25519 · Offline   │    │
│           └─────────────────────┘  └────────────────────┘    │
└──────────────────────┬────────────────────────────────────────┘
                       │ IPC (context-isolated, validated)
                       ▼
┌──────────────────────────────────────────────────────────────┐
│  REACT FRONTEND                                               │
│  Dashboard · Score · Evidence · History · Settings · License  │
│  Auto-detects Electron (IPC) vs Web (HTTP) mode               │
└──────────────────────────────────────────────────────────────┘
                       ▲
                       │ HTTP / REST API
                       ▼
┌──────────────────────────────────────────────────────────────┐
│  WEB MODE (Self-Hosted or Managed)                            │
│                                                               │
│  ┌─────────────────┐  ┌───────────────────────────────────┐  │
│  │ FastAPI Backend  │  │ PostgreSQL                        │  │
│  │ Auth · Evidence  │  │ Users · Companies · Compliance    │  │
│  │ Compliance API   │  │ Evidence · Frameworks             │  │
│  └─────────────────┘  └───────────────────────────────────┘  │
│                                                               │
│  Your server OR our managed infrastructure:                   │
│  your choice, your data stays yours either way.               │
└──────────────────────────────────────────────────────────────┘

Key files:

ComplianceGuard/
├── backend/
│   ├── app/
│   │   ├── main.py                     # FastAPI app, CORS, routes, lifespan tasks
│   │   ├── api/                        # Auth, evidence, compliance, ISO 27001 endpoints
│   │   ├── core/                       # Config, database, auth, controls YAML, canonical_evidence.py + canonical_router.py
│   │   ├── models/                     # SQLAlchemy models (user, refresh_token, evidence, compliance, machine)
│   │   ├── services/                   # Audit log, evidence collector
│   │   └── integrations/aws.py         # AWS evidence collection
│   ├── migrations/                     # Alembic database migrations
│   ├── tests/                          # Unit, integration, and e2e suites
│   ├── requirements.txt
│   └── Dockerfile
├── electron/
│   ├── main.js                         # Window mgmt, IPC handlers, tray
│   ├── preload.js                      # Secure IPC bridge with validation
│   ├── database/sqlite.js              # SQLite operations, backup
│   ├── licensing/
│   │   ├── generate-key.js             # Ed25519 keypair + license key generator
│   │   ├── license-crypto.js           # Signature verification (public key only)
│   │   ├── license-manager.js          # License state, feature gates, persistence
│   │   └── tier-constants.js           # Free vs Pro feature definitions
│   ├── processing/
│   │   ├── canonical-engine.js         # Canonical scoring engine (JS port of the shared model)
│   │   ├── evidence-processor.js       # Evidence collection + storage
│   │   └── report-generator.js         # HTML → PDF report generation
│   └── system/                         # windows.js · macos.js · linux.js evidence collectors
├── shared/frameworks/                  # Source of truth: canonical control definitions (4 YAMLs) + evidence vocabulary (JSON)
├── frontend/
│   ├── src/
│   │   ├── App.tsx                     # App entry point: providers, auth gate, error boundary
│   │   ├── theme.ts                    # Light (Clean Enterprise) + dark (Dark Professional) MUI themes
│   │   ├── components/                 # Dashboard, ScoreHero, Evidence, History, Settings, Login
│   │   │   ├── layout/                 # AppShell, Topbar, ContextSidebar, PageTransition
│   │   │   ├── ui/                     # Reusable primitives: MotionCard, MotionButton, StatCard, StatusChip, Segmented, EmptyState, PageHeader
│   │   │   └── dashboard/              # DashboardHeader, CollectionSummary sub-components
│   │   ├── hooks/useDashboard.ts       # Data fetching + action handlers (react-query)
│   │   ├── contexts/AuthContext.tsx     # JWT auth state, login/register/logout
│   │   ├── contexts/LicenseContext.tsx  # React context for tier state + feature checks
│   │   ├── services/api.ts             # Unified API (IPC or HTTP)
│   │   └── test/                       # Vitest unit test suite
│   ├── e2e/                            # Playwright e2e tests (9 tests)
│   ├── .eslintrc.cjs
│   ├── .prettierrc
│   └── Dockerfile
├── assets/
│   ├── banner.svg
│   └── screenshots/                    # Dashboard, ControlHeatmap, ScoreTrend, CloudDashboard, ...
├── resources/icons/                    # App icons (ico, png, svg, tray)
├── install.bat                         # One-click setup (installs deps, creates start.bat)
├── .github/workflows/ci.yml            # Backend Tests → Lint & Test → Build
├── docker-compose.yml                  # PostgreSQL + Backend + Frontend + Nginx
├── nginx.conf                          # Reverse proxy, rate limiting, security headers
├── .env.example                        # Environment config template
└── package.json                        # Electron + build config

Limitations

ComplianceGuard supports Windows, macOS, and Linux endpoints. The following limitations apply in the current release:

  • Scheduled collection requires the desktop app running: Daily or Weekly schedules fire only while the desktop app is open — there is no OS-level/background scheduler yet. Configure in Settings → Automatic Collection.
  • Per-machine view in desktop mode: the Electron app shows one machine at a time. Use web mode (self-hosted or managed) with the Cloud Dashboard to monitor multiple machines centrally.
  • AWS only for cloud evidence: the web backend collects S3 and IAM evidence from AWS. GCP and Azure are not yet implemented.
  • PCI DSS not yet implemented: SOC 2 Type II (43 criteria), ISO/IEC 27001:2022 (93 controls), HIPAA Security Rule (47 safeguards), and GDPR (38 obligations) are all available. PCI DSS is planned.
  • Evidence coverage is not a compliance determination: scores measure whether required evidence types were collected. Many SOC 2, ISO, and GDPR criteria require organizational or manual evidence that endpoint scans cannot establish, and a certification or audit opinion always requires an independent assessor.
  • Single machine in free tier: the free tier is limited to one machine. Pro supports up to 10, Enterprise is unlimited.
  • No real-time monitoring: ComplianceGuard takes point-in-time snapshots, not continuous streams.
  • PDF reports require Pro: the free tier shows your overall coverage score but does not generate PDF report exports.

Pricing

Free tier to get started. Pro adds PDF evidence reports, trend history, and remediation scripts. Enterprise is built for the strictest environments.

ComplianceGuard fills the endpoint evidence gap that cloud-first platforms leave open: they automate evidence through SaaS, cloud, identity, and MDM integrations, while ComplianceGuard collects it directly from the machines themselves. Use both to cover the full stack — cloud infrastructure and endpoint evidence. No tool combination by itself establishes SOC 2 Type II compliance: a Type II opinion requires an independent auditor assessing operating effectiveness over a review period.

Self-Hosted (You Manage the Server)

Free Pro Enterprise
Price $0 forever $149/mo $599/mo flat
Billed annually $1,788/yr $7,188/yr
Evidence collection (all 8 categories)
SOC 2 controls scored All 43 (overall score only) All 43 + per-control breakdown All 43 + per-control breakdown
Overall evidence coverage score
Per-control scoring + gap details
Control heatmap + remediation scripts
Evidence coverage trend (per framework)
Remediation recommendations
Upload manual evidence (policies, docs)
Evaluation history + trends
PDF evidence reports
Cloud dashboard (multi-machine)
Tamper-evident audit log (HMAC-SHA256 hash chain)
RBAC (admin + auditor roles)
Custom PDF branding (logo, company name, footer)
Full compliance data export (NDJSON)
Air-gapped Docker deployment bundle
Zero telemetry (ENTERPRISE_MODE)
Machines 1 Up to 10 Unlimited
Users 1 Up to 10 Unlimited
Support Community Email Dedicated SLA

Managed Hosting (We Manage the Server)

Pro Managed Enterprise Managed
Price $229/mo $999/mo
Billed annually $2,748/yr $11,988/yr
Everything in Self-Hosted Pro/Enterprise
Zero server setup required
We handle uptime, backups, updates
Onboarding assistance
Dedicated infrastructure

Self-hosted: Your data stays entirely on your infrastructure, and the price is lower because you manage the server. A good fit for regulated industries, government contractors, legal firms, and air-gapped environments.

Managed: We host the dashboard for you, so there is zero setup. The price is higher because we do the work. The data sovereignty principles are the same: your endpoint evidence never leaves your machines until you sync.

License keys use Ed25519 cryptographic signatures, verified offline with no license server required.

Security Model

All data stays under your control. Zero telemetry.

Layer How
IPC Context isolation. Every exposed method validates input types and uses allowlists.
Evidence Full audit trail with timestamps. Streaming upload with early abort on size/type violation.
Database Parameterized queries. Foreign key constraints. Alembic-managed migrations.
Navigation External URLs blocked. window.open denied.
Licensing Ed25519 signed keys. Only the public key ships with the app.
Auth (Web) JWT access tokens (30 min, held in memory only in the browser, never localStorage/sessionStorage) + DB-backed revocable refresh tokens (7 days) delivered as an HttpOnly, SameSite=Strict cookie (Secure in prod) so they aren't readable by JS/XSS. Page reloads silently re-authenticate via the refresh cookie. Desktop clients (X-Client-Type: desktop) still receive the refresh token in the response body. Refresh tokens rotate on every use with family reuse detection; the access-token path rejects refresh tokens. Password-reset and email-verification tokens are stored hashed (SHA-256), never in plaintext. Bcrypt hashing (passwords capped at 72 bytes, bcrypt's real limit). Email verification enforced. A password reset revokes all of the user's refresh tokens. POST /api/v1/auth/logout revokes the refresh token JTI and clears the cookie.
License (Web) Ed25519 signed keys verified in Python (cryptography). require_pro dependency returns HTTP 402. License email validated on activation.
Rate Limiting 5 req/min on login, 3/min on register. Redis shared backend via RATELIMIT_STORAGE_URI, required in production when scaled out (WORKERS>1 or REPLICAS>1; startup fails otherwise so limits can't silently weaken). Nginx rate limiting at proxy layer.
Metrics /metrics is Prometheus-format but not public: loopback scrapes only unless METRICS_ALLOWED_IPS admits internal scraper subnets; nginx additionally returns 404 for public requests.
Error Monitoring Sentry integration on backend (FastAPI + SQLAlchemy) and frontend. send_default_pii=False. Silent no-op when DSN unset. Disabled entirely when ENTERPRISE_MODE=true.
Enterprise Audit Tamper-evident audit log with an HMAC-SHA256 keyed hash chain (prev_hash + entry_hash; key derived from the server secret, so a DB-write attacker can't forge it). Append-only at API layer; Postgres app user REVOKEd DELETE/UPDATE. Chain verifiable at GET /api/v1/enterprise/audit-log/verify. Enterprise endpoints (audit/RBAC/branding/export) require a dedicated deployment (ENTERPRISE_MODE=true) and the admin role, and are never served on the shared hosted backend.
Proxy Nginx reverse proxy with CSP, HSTS, Permissions-Policy, X-Frame-Options, X-Content-Type-Options.

For reporting security vulnerabilities, see SECURITY.md or contact us via /.well-known/security.txt (RFC 9116).

ComplianceGuard's own compliance posture: we practice what the tool preaches at the scale we're at — zero telemetry, signed release integrity manifests (SHA256SUMS + SBOMs on every release), and supply-chain checks in CI. We do not yet hold a SOC 2 attestation or a published third-party pentest report for ComplianceGuard itself; when we do, they will be listed here. We'd rather show an honest "not yet" than a borrowed claim.

Development

Desktop

npm run dev              # Electron + React dev server
npm run build            # Build frontend
npm run package          # Windows installers (NSIS + portable .exe)
npm run package:mac      # macOS DMGs (Intel + Apple Silicon)
npm run package:linux    # Linux AppImage + .deb

Web / Backend

docker-compose up -d     # Start all services
docker-compose down      # Stop all services
cd backend
pip install -r requirements.txt
alembic upgrade head                 # Run database migrations
uvicorn app.main:app --reload        # Run backend locally

Tests

# Frontend (Vitest unit + Playwright e2e)
cd frontend
npm test                 # Vitest unit tests
npm run test:e2e         # Playwright e2e (starts real backend + frontend)
npm run lint             # ESLint
npm run format:check     # Prettier

# Backend
cd backend
python -m pytest tests/unit/ -v
python -m pytest tests/integration/ -v
python -m pytest tests/e2e/ -v --run-e2e
python -m pytest tests/ -q --cov        # with coverage report

The Playwright e2e suite (frontend/e2e/) is full-stack: it boots the real FastAPI backend against an isolated SQLite database (e2e_test.db) plus the Vite dev server, then drives the browser through register/login/dashboard flows. Run it with cd frontend && npm run test:e2e (backend deps must be installed and on PATH, or prefix with PATH=../backend/.venv/bin:$PATH).

Performance benchmark

cd backend
python -m uvicorn app.main:app --reload --port 8000   # terminal 1
python scripts/benchmark.py --requests 100            # terminal 2: serial
python scripts/benchmark.py --requests 100 --concurrency 10   # parallel load

Reports p50/p95/p99 latency for the hot endpoints (login, framework controls, evaluation history, evaluate) and exits non-zero if p95 exceeds --max-p95-ms (default 500 ms), so it can gate CI performance regressions. The bench user is auto-created and promoted to a verified Pro account.

CI runs all tests on every push via GitHub Actions, and the desktop (Electron) test suite gates releases. Backend: 450 unit + 43 integration + 9 e2e. Frontend: 260 Vitest unit. Electron: 512. Playwright e2e: 9.

Deployment

See docs/deployment.md for production deployment guides covering Railway (one-click), Docker Compose (VPS), Render, and manual VPS setup. Includes monitoring, migration, and troubleshooting.

Moving from SQLite to PostgreSQL? See docs/migrate-sqlite-to-postgres.md.

Backup & Disaster Recovery

Nightly pg_dump backups with verification + retention pruning, a one-command restore, and a full DR runbook (RPO/RTO targets, off-site copies, restore drills) live in docs/disaster-recovery.md:

./scripts/db-backup.sh                          # nightly backup
./scripts/db-restore.sh --dry-run backups/latest.dump   # safe preview
./scripts/db-restore.sh backups/latest.dump             # actual restore

Troubleshooting

Issue Solution
install.bat fails with "Node.js not found" Install Node.js 18+ and ensure it is added to your PATH. Restart your terminal after installation.
install.bat fails with "Python not found" Install Python 3.10+ and check "Add Python to PATH" during setup.
Backend starts but frontend shows blank screen Run cd frontend && npm install then npm run build. In desktop mode, ensure the Vite dev server is running on port 5173.
Docker Compose fails with "port already in use" Stop any existing services on ports 80, 8000, or 5432, then re-run docker-compose up -d.
Evidence collection returns empty results Run the app as Administrator. Some Windows registry and event log queries require elevated privileges.
alembic upgrade head fails Ensure DATABASE_URL in your .env is set correctly. For local SQLite, use sqlite:///./complianceguard.db.
License key not activating License keys are tied to the Ed25519 public key bundled with the app. Ensure you are using a key generated for this build.
Electron tests fail with "Could not locate the bindings file" better-sqlite3 13 ships N-API prebuilds in the npm tarball, so the same binary works under Node (tests) and Electron (packaged app) with no rebuild. If you see a bindings error, run npm ci to restore the prebuilds; only the legacy npm run test:scheduler pretest hook rebuilds for a specific ABI.

FAQ

Is my compliance data sent anywhere?

No. All evidence collection, scoring, and storage happens locally on your machine or on your own hosted infrastructure. There is no telemetry and no data leaves your control.

What is the difference between self-hosted and managed?

Self-hosted means you run the web dashboard on your own server: Railway, Render, DigitalOcean, or any VPS. Managed means we run it for you. Either way, the endpoint evidence collected from your machines stays local until you explicitly sync it. The difference is who manages the server infrastructure.

Does ComplianceGuard replace a SOC 2 auditor?

No. It automates evidence collection and gives you a readiness score, but a formal SOC 2 audit still requires a licensed CPA firm. Think of ComplianceGuard as audit preparation, not audit replacement.

Can I use the free tier for a real audit?

The free tier is useful for assessing your current posture. For an actual audit you will need Pro, which includes the full 43-criteria breakdown, gap details, remediation recommendations, and PDF exports that auditors expect. Note that no tool — ComplianceGuard included — issues or replaces the audit opinion itself: only an independent auditor can do that.

What happens to my data if I stop using ComplianceGuard?

Your data is stored in a local SQLite file (Desktop mode) or your own PostgreSQL instance (Web mode). Uninstalling the app or deleting the database file removes all data permanently.

Is the source code auditable?

Yes. The full source is available in this repository under the Business Source License. You can inspect every line of the evidence collection and scoring logic.

How do I get a Pro or Enterprise license key?

Contact [email protected] for licensing. Managed hosted instances are also available; we handle deployment and infrastructure for you.

What is the Cloud Dashboard?

The Cloud Dashboard allows you to monitor multiple machines from one centralized web view. Each endpoint (Windows, macOS, or Linux) runs the Electron desktop app. Go to Settings > Cloud Sync, enter your web server URL and credentials, and click Sync to Cloud. The web dashboard then shows all machines' evidence coverage scores, last sync time, and fleet-level stats. Available for Pro and Enterprise users.

Can I use this in an air-gapped environment?

Yes. The Desktop (Electron) mode works completely offline with no network traffic. Evidence is collected locally, stored in SQLite, and never leaves the machine unless you configure cloud sync. A good fit for classified, government, or highly regulated environments.

Contributing

Contributions are welcome. Before submitting a pull request, please:

  • Add tests for any new functionality
  • Ensure all existing tests pass (npm test + pytest)
  • Follow existing code style (ESLint + Prettier for frontend, ruff for backend)
  • Update documentation for any user-facing changes

See CONTRIBUTING.md for full guidelines.

Roadmap

Shipped

  • Evidence collection across 8 categories: event logs, registry, services, firewall, users, network, software, file permissions
  • Native Linux support: systemd/journald, iproute2, ufw/iptables/nftables, dpkg/rpm/pacman; AppImage + .deb distribution
  • Native macOS support on Intel and Apple Silicon (unsigned DMG with Gatekeeper bypass)
  • Four compliance frameworks: SOC 2 Type II (43 criteria), ISO/IEC 27001:2022 (93), HIPAA Security Rule (47), GDPR (38)
  • Scheduled evidence collection (Daily/Weekly while the desktop app is running)
  • Control Heatmap with per-control scores, gap details, and inline remediation scripts
  • Evidence coverage trend with per-framework history
  • PDF evidence reports and evaluation history
  • Air-gapped Enterprise tier: tamper-evident HMAC-SHA256 audit log, RBAC, custom PDF branding, NDJSON export, offline Docker bundle
  • Free / Pro / Enterprise licensing with Ed25519 signatures, verified fully offline
  • Cloud sync and multi-machine compliance dashboard
  • Self-hosted (Docker), managed hosting, and one-click Railway deploy

Planned

  • GCP and Azure cloud evidence (AWS today)
  • PCI DSS framework
  • Signed macOS builds and notarization (requires Apple Developer enrollment)
  • Evidence status workflow (pending review, approve, annotate)
  • Setup video walkthrough

License

Business Source License 1.1: free to use, modify, and self-host. You may not offer ComplianceGuard as a competing hosted commercial service. See LICENSE for full terms.

See CHANGELOG.md for full version history.


ComplianceGuard — Collect. Evaluate. Comply.

Built by Egyan07

Email   Report a bug · Request a feature

About

Endpoint evidence for SOC 2, ISO 27001, HIPAA & GDPR. Collect locally on Windows, macOS & Linux. Self-host or sync to a centralized dashboard. Free tier.

Topics

Resources

Contributing

Security policy

Stars

8 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages