At scale · open source · Apache-2.0

From a firewall to a security program.

A control plane, governed rule management, compliance evidence and SIEM export — layered on the core through its extension seams. Self-hosted, off the request path, and open source like the rest of Light WAF.

Self-hosted · your infrastructureZero-datapath control plane
control plane · overview
Light WAF control plane — overview dashboard
What changes at scale

The core protects a node. The components run the fleet.

Three things change when you move from a standalone WAF to a governed deployment across many nodes.

SCALE

Protection across a fleet

The core protects one node; the data-path components coordinate across the whole cluster — one rate-limit budget, shared reputation, managed certificates.

OPERATE

One console over everything

A control plane collects every node's telemetry, shows what's blocked and why, alerts on attack signatures, and manages rules with per-node convergence.

GOVERN

Access, audit, evidence

RBAC and SSO, a signed tamper-evident audit log, on-demand SOC2/PCI evidence, and a SIEM feed — the paperwork a security program needs.

At-scale protection

Coordinated defense on the data path.

Data-path components plug into the core's seams, survive reloads, and act across the whole cluster. Each one is default-off and turned on by its own [enterprise.*] table.

Cluster-wide rate limiting

One token-bucket budget shared across every node via Redis, accounted atomically server-side. No node over-allows.

IP reputation & threat feeds

Score client IPs from your blocklists; a single-writer feed keeps the shared, self-expiring reputation fresh across the fleet.

Managed ACME TLS

Hitless certificate issuance and rotation (TLS-ALPN-01 or DNS-01 wildcards), coordinated across nodes so one issues for the cluster. Plus mutual TLS.

Curated rules

A maintained pack of high-signal content — Log4Shell, Spring4Shell, cloud-metadata SSRF, CISA-KEV CVEs — on top of the CRS engine.

Schema enforcement

Validate every GraphQL, gRPC and REST request against your app's real schema or OpenAPI spec; a route or field the real client never sends is a probing signal.

Bot detection & signed plugins

Flag clients that impersonate a browser, and gate your own WASM modules behind a detached minisign signature — a plugin that fails verification never loads.

Configure the components →
The control plane

See what your fleet is doing — and why.

A separate service, off the request path, that turns every node's telemetry into one operational picture.

overview
Overview — block rate, traffic disposition, latency
Monitor. Block rate, traffic disposition, denied-event volume and per-node latency across the cluster.
event drill-down
Event drill-down — the Verdict Meter and score breakdown
Explain. Open any blocked request and see the score, broken down per rule and severity.
rules
Rule management — versions, rollback, per-node convergence
Manage. Publish and roll back ruleset versions; an agent validates and hot-reloads, and you watch convergence.

Full request capture

Optionally capture the complete denied request — headers, cookies and body — off the data path, so the drill-down shows exactly what was blocked. Node-side redaction, short retention, RBAC-gated and audited on every view.

Attack-signature alerting

Rules over the decision stream fire when a pattern crosses a threshold (a per-IP or per-rule block burst), with cooldowns, and push to a webhook.

Live, no-refresh dashboard

Events and alerts stream in over SSE — the console updates the moment a node reports, without a page reload.

Govern & prove

Access control, and the evidence to back it.

Who can do what, a record that can't be quietly altered, and the reports your auditors ask for.

RBAC & SSO

Viewer / operator / admin roles, local accounts, and OpenID Connect single sign-on behind HttpOnly session cookies.

Signed audit log

Every action hash-chained and Ed25519-signed — tamper-evident, and verifiable on demand from the dashboard.

Compliance evidence

Generate a signed SOC2 / PCI evidence bundle for any period: access control, audit integrity, WAF effectiveness, incidents.

SIEM export

Push denied verdicts, audit records and alerts to your SIEM as versioned ECS-like NDJSON — at-least-once, with visible lag.

compliance
Compliance report — a signed SOC2/PCI evidence bundle
Compliance. A signed SOC2 / PCI evidence bundle, generated for any period and verifiable independently.
Kubernetes-native

Ship it the way you already run things.

Helm charts, a first-class operator, and GitOps examples — a WAF per workload, not a rewrite of the data path. Multi-arch images (amd64 + arm64) are published on the GitHub Container Registry.

Helm charts

One chart puts a hardened WAF in front of a workload; another runs the control plane with bundled or managed Postgres. Everything is a value — modules, TLS, rate limits, capture.

WafProxy operator

A namespaced CRD (waf.io/v1alpha1): declare a WafProxy and the operator renders and owns the ConfigMap, Deployment and Service. Delete the CR and it cleans up.

GitOps & Gateway API

Ready-made Argo/Flux, Ingress, Gateway API and cert-manager examples — drop the WAF into the traffic path you already run.

Graceful, hardened pods

Non-root, read-only rootfs, dropped capabilities; on SIGTERM readiness flips so Kubernetes drains in-flight requests before the pod exits.

ImageWhat it runs
ghcr.io/0x00spor3/waf-enterprise:1.0.2The data plane: the WAF proxy with every component wired in.
ghcr.io/0x00spor3/waf-controlplane:1.0.2The control plane: API, embedded dashboard and governance.
ghcr.io/0x00spor3/waf-node-agent:1.0.2Pulls published rulesets onto a WAF node and triggers a reload.
ghcr.io/0x00spor3/waf-operator:1.0.2The Kubernetes operator for the WafProxy custom resource.
Deploy on Kubernetes →
Architecture & trust

Built to sit in a security boundary.

The properties that matter when you put software in front of your traffic.

Zero-datapath control plane

The control plane never sits between clients and your backend. It reads telemetry — it cannot add latency or fail a request.

Built on the public API

Every component plugs into the core's typed extension seams through the builder. The core never depends on a component.

Memory-safe Rust, no OpenSSL

The same memory-safe foundation as the core; TLS is rustls — no OpenSSL linked into any shipped binary.

Self-hosted

Runs on your infrastructure — your Postgres, your Redis, your network. Nothing phones home; your traffic stays with you.

Get started

Bring it to your infrastructure.

The WAF, the control plane and the node agent run in a few minutes from source or from the images. Start with one node and grow into the rest.