Deployment & Infrastructure
Topology
%%{init: {"theme": "base", "themeVariables": {"fontFamily": "-apple-system, Segoe UI, Helvetica, Arial, sans-serif", "primaryColor": "#eef2f7", "primaryTextColor": "#0b0b0b", "primaryBorderColor": "#5b6b7c", "lineColor": "#5b6b7c", "secondaryColor": "#eef4ff", "tertiaryColor": "#f4f3f0", "clusterBkg": "#f9f9f7", "clusterBorder": "#c3c2b7", "edgeLabelBackground": "#fcfcfb", "actorBkg": "#eef2f7", "actorBorder": "#5b6b7c", "actorTextColor": "#0b0b0b", "actorLineColor": "#5b6b7c", "signalColor": "#52514e", "signalTextColor": "#0b0b0b", "labelBoxBkgColor": "#eef4ff", "labelBoxBorderColor": "#5b6b7c", "labelTextColor": "#0b0b0b", "loopTextColor": "#0b0b0b", "noteBkgColor": "#fdf3d9", "noteBorderColor": "#c98500", "noteTextColor": "#3d2f00", "activationBorderColor": "#5b6b7c", "activationBkgColor": "#eef4ff", "sequenceNumberColor": "#ffffff"}}}%%
flowchart TB
subgraph Perimeter["Customer Network Perimeter"]
direction TB
subgraph CPHost["Control Plane Host(s)"]
CP["Control plane (Go)"]
PG[("PostgreSQL")]
IdP["OIDC / Keycloak-compatible IdP"]
Loki[("Grafana Loki\n(SIEM)")]
CP --- PG
CP --- IdP
CP --- Loki
end
WS1["Workstation agents"]
WS1 -- "signed policy pull /\nredacted heartbeat+events" --> CP
end
Internet(["No internet egress required\nfor enforcement decisions"])
Perimeter -.optional: update catalog,\nthreat-intel feed refresh.-> Internet
The control plane is deployed on-premise, inside the customer's network perimeter, by design. Because policy evaluation is local (see Policy Engine & Trust Chain) and telemetry is asynchronous, no internet egress is required for enforcement decisions to keep functioning. Air-gapped operation is a first-class supported mode: a workstation with its last signed policy snapshot continues enforcing correctly with the control plane, or the internet, completely unreachable. The only things that benefit from connectivity are non-blocking background functions — pulling a newer signed policy, syncing the redacted audit trail, and (optionally) refreshing update catalogs or threat-intelligence feeds the control plane tracks.
Control-plane stack
| Component | Technology | Why |
|---|---|---|
| Application server | Go, net/http ServeMux |
Minimal dependency surface, suited to air-gapped/regulated deployment |
| Data store | PostgreSQL (via pgx/v5) |
Policy store, event/audit store |
| Identity | OIDC, Keycloak-compatible | Fits an existing enterprise IdP |
| SIEM export | Direct HTTP push to Grafana Loki | See Zero-Knowledge Telemetry for what is and isn't exported |
| Admin UI | Vanilla JavaScript, no build step, served by the control plane | No npm-based build pipeline inside the shipped server image — one less supply-chain surface for an air-gapped deployment to trust |
| Deployment packaging | Docker | Standard operational packaging for the on-prem stack |
Workstation installation model
Installation is deliberately split into two concerns: a one-time platform bootstrap, and continuous centralized updates after that.
- Bootstrap once using the platform-appropriate installer — an MDM-deployed package
plus configuration profile on macOS (Jamf/Kandji/Intune/Mosyle/Workspace ONE-class
tooling), a signed
deb/rpmthrough the fleet package manager on Linux, or an Intune/SCCM/GPO-delivered package on Windows. Each platform's bootstrap provisions a local trust store (see Identity, Access & Fleet Operations) and registers the workstation against the control plane using a short-lived, org-scoped enrollment token. - Every update after that is centrally controlled — the agent converges to a signed target version from the control plane's version catalog on its own schedule.
On Linux specifically, the enforcement layers (shell hooks, LD_PRELOAD, and the
fanotify kernel monitor) can each be selectively enabled or skipped per-host at install
time — useful for a workload with a known incompatibility — without disabling the rest of
the protection stack.
Why on-prem-first, restated as an infrastructure decision
The architectural choice covered in Architecture Overview — local decisioning, no synchronous server round-trip — has a direct infrastructure consequence: the product keeps enforcing securely when a customer's network segment is isolated for compliance reasons, or when a data-residency requirement rules out any SaaS control plane. On-prem deployment inside the customer's own perimeter is the default deployment target the architecture was designed against from the outset.
Continue to Security of the Security Tool.