A self-hosted DevSecOps platform that automatically scans repositories for security misconfigurations on every
push — with a custom static analysis engine, secrets detection, and a real-time dashboard.
Go 1.21+Python 3.11Apache 2.0Docker ComposePostgreSQL 16KyvernoSARIF
0
Built-in Security Rules
0
Scan Target Types
0
Output Formats
0
Command Setup
sectl — Security Enforcement CLI
01
How It Works
ZeroTrustOps integrates seamlessly into your Git workflow. Every push triggers an automated security scan
with detailed findings routed to the dashboard.
01
🔀
Developer pushes code to a connected GitHub repository
02
🔔
GitHub fires a webhook to the ZeroTrustOps platform API
03
📦
API clones the repository into an isolated workspace
container
04
🔍
SecTL scans Kubernetes manifests, Terraform, and Helm charts
with 70+ rules
05
🔐
Gitleaks scans for hardcoded secrets, credentials, and API
keys
06
🗄️
Findings stored in PostgreSQL, security gate decision
computed (PASS/FAIL)
07
📊
Dashboard displays PASS or FAIL with full finding detail and
remediation
02
Architecture
CLI Engine
SecTL
Go 1.21+
Custom static analysis engine. Scans K8s, Terraform, Helm, and container images with
70+ built-in rules. Outputs table, JSON, and SARIF.
Backend API
Platform API
Python / FastAPI
Receives GitHub webhooks, orchestrates background scans, stores results, and exposes
a full REST API for the dashboard.
All three services are orchestrated via Docker Compose and communicate over an
internal bridge network (zerotrust-net). PostgreSQL persists all scan state.
03
Platform Screenshots
Below are representative views of the ZeroTrustOps dashboard built with React + Vite, displaying live scan
data from the PostgreSQL backend.
Dashboard Overview — Scan stats & recent activity
Scan Detail — Findings with severity & location
Repositories — Connected repos & scan status
Setup Page — Guided webhook configuration
04
SecTL — Security Enforcement Engine
SecTL is the heart of ZeroTrustOps. A custom static analysis CLI written in Go with zero external rule
dependencies — every rule is built-in and version-controlled with the platform.
$sectl audit --provider aws
--region us-east-1 # live posture
05
Selected Security Rules
70+ rules across Kubernetes, Terraform, and supply-chain targets. Rules are identified by a unique ID and
carry severity, category, remediation guidance, and affected resource path.
K8S-001CRITICALhostPID enabled — container sees all host processes
K8S-004CRITICALPrivileged container — full host device access
K8S-020CRITICALRBAC wildcard apiGroups (*)
K8S-024CRITICALBinding to cluster-admin role
K8S-031HIGHHardcoded
secret in environment variable
K8S-005HIGHallowPrivilegeEscalation not set to false
One command. The setup script checks prerequisites, compiles SecTL from source, builds all
Docker containers, runs a quick scan test, and waits for health checks to pass. First run takes 3–5 minutes;
subsequent starts are instant (cached layers).
Three cluster-wide policies enforce security at the Kubernetes admission level. All policies run in
Enforce mode — they actively block non-compliant resources from entering the cluster.
🏷️
disallow-latest-tag Enforce
Blocks containers using the :latest image tag or no tag at all.
Requires explicit, immutable version tags for reproducible deployments.