MeterBox on-prem & sovereign deployment guide

Owner: Eng. Review cadence: whenever a tier-level capability changes (scheduler, secrets backend, key-management story, compliance scope).

MeterBox ships in three operating models. Same Helm chart, same APIs, same data-plane image — only where it runs and who runs it differs.

Tier Operator Cluster Best for
Cloud MeterBox Shared multi-tenant control plane + per-(org, env) data planes SaaS teams that don't want to operate Kubernetes
Self-Managed You Your existing Kubernetes (EKS, GKE, AKS, k3s, OpenShift, on-prem) Data residency, regulatory control, zero outbound deps
Managed (sovereign) MeterBox SRE Single-tenant cluster in your sovereign cloud / region Defense, public sector, fintech, healthcare with FedRAMP / HIPAA / GDPR-grade requirements

The customer-facing summary lives at the Deployment section on the home page (data sourced from src/web/data/tiers.json). This document is the operator-facing runbook that backs those promises.


What each tier inherits

All three tiers ship the same surface:

Differences below are purely operational.


What you don't get (single-tenant by design)

Self-Managed and Managed run a dedicated control + data plane per tenant org. That's the value — and the constraint:

For the Self-Managed tier specifically, also note:


Self-Managed — installing the chart

# 1. Mirror the images into your registry (air-gapped clusters).
docker pull ghcr.io/<owner>/meterbox/control-plane:<tag>
docker pull ghcr.io/<owner>/meterbox/data-plane:<tag>
docker tag  ghcr.io/<owner>/meterbox/control-plane:<tag>  your-registry.example.com/meterbox/control-plane:<tag>
docker tag  ghcr.io/<owner>/meterbox/data-plane:<tag>     your-registry.example.com/meterbox/data-plane:<tag>
docker push your-registry.example.com/meterbox/control-plane:<tag>
docker push your-registry.example.com/meterbox/data-plane:<tag>

# 2. Configure values.
cp deploy/helm/meterbox/values.yaml my-values.yaml
# Edit: images.controlPlane / dataPlane, ingress.host, secrets.*, ...

# 3. Install.
helm install meterbox deploy/helm/meterbox -f my-values.yaml -n meterbox

Key Helm values to override

Value Default Notes
images.controlPlane / dataPlane GHCR Point at your registry mirror in air-gapped clusters
images.pullSecretName unset Required if the registry is private
secrets.adminApiKey unset Legacy admin-key gate; rotate yourself
controlPlane.appBaseUrl empty Where the SPA is served (used for reset links, SSO redirect)
controlPlane.ingress.host meterbox.local The ingress hostname for the cp / spa
postgres.bundled true Must stay true — in-cluster Postgres is the supported store
redis.bundled true Same rule
warmPool.size / warmPool.regions 3 / 3 regions Pre-warmed slots per region (see warm-pool service)
backupMirror.enabled false Opt in to the encrypted off-cluster mirror
backupMirror.key empty 32-byte AES-256-GCM key (64 hex chars) — cluster-wide default
backupMirror.defaultTarget.kind stub stub / s3 / gcs / azure

Per-tenant overrides for the backup target are also available via PATCH /cp/organizations/me/backup-target — see backup-mirror.js.

Air-gap notes


Managed (sovereign) — what MeterBox SRE operates

The Managed tier is Self-Managed run by MeterBox SRE. The customer chooses the region (AWS GovCloud, GCP Assured, Azure Government, EU-only AWS, or on-prem) and the operating cluster is single-tenant — no other customer's data ever lands on it.

Customers in this tier:

The operator-side procedures behind these promises — provisioning, on-call, upgrades, backup/restore drills, key rotation, SIEM cron-push samples for Splunk/Datadog/S3, and VPC-peering shapes (peered / Transit Gateway / air-gap) — live in docs/operator-runbook.md.

Compliance posture per tier

Tier SOC 2 HIPAA FedRAMP ISO 27001 GDPR data residency
Cloud Anchor cert (in progress — see docs/compliance/) Roadmap EU shared cluster planned
Self-Managed Inherits customer's controls HIPAA-ready (customer signs BAA with their cloud) Customer-led, on customer infra Roadmap Inherent (your cluster, your region)
Managed (sovereign) Anchor cert + customer's controls Yes (with BAA) Moderate — target Yes (target) Yes — region-pinned

Detailed control narratives live in docs/compliance/soc2-evidence-map.md and docs/compliance/audit-trail-architecture.md.


What we deliberately do NOT do, across all tiers

These are not gaps to close — they are explicit non-goals so the operating model stays clear:


Cross-references