Skip to content
BLACKLAKE
Cloud vs self-hosted▾ docs nav

Cloud vs Self-Hosted

Choose the deployment path that fits your team in 60 seconds.

BlackLake runs in two modes: the hosted cloud control plane at console.blacklake.systems and the self-hosted install via npx blacklake serve on your own machine or infrastructure.

Both modes use the same policy, approval, budget, cost, and receipt model. The difference is who runs the ops and what integrations are available out of the box.


Start with cloud if…#

Most teams should start here. Cloud is the fastest path to a working control plane with shared controls and no infrastructure burden.

SituationWhy cloud fits
You want to start todaySign up, copy an API key, point your MCP config — five minutes to first receipt
You need shared controls across your teamWorkspaces, shared policies, shared approval queues, per-user API keys
You use OAuth-protected upstreams (Atlassian, Linear, Slack)Cloud handles the OAuth handshake, token storage, and refresh — local cannot
You want approval delivery to email or mobileEmail fan-out and web push are cloud-only
You expect to need audit evidence for SOC 2 or similarManaged retention archive, signed exports, compliance evidence packs
You'd rather not run the opsNo database to maintain, no upgrade cadence, no backup runbook

Cloud is free while in beta. No credit card required.


Self-host or run locally if…#

Self-hosting is a legitimate path. Be explicit about the trade-offs.

SituationWhat it means in practice
Air-gapped requirementYour environment has no outbound internet — cloud is not an option
Regulated industry without cloud approvalProcurement hasn't approved SaaS data-plane; self-host until it does
Evaluating with very sensitive dataRun locally first, migrate to cloud when you're confident in the data boundary
Paranoid prototypingNo problem — npx blacklake serve has the full control model locally

When you self-host, you own:

  • The database — SQLite for local; Postgres for production self-hosted. Backups, restore paths, and retention management are yours.
  • The upgrade cadence — no automatic updates. Follow the changelog and apply migrations manually.
  • The audit retention — no managed archive. Long-term retention requires your own export pipeline.
  • The evidence pack generation — compliance packs are not automated; you export and organize manually.
  • OAuth upstreams — not available without a public callback URL.

None of these are blockers for evaluation or for teams with the ops capacity to run them. They are explicit trade-offs, not omissions.


Moving from local to cloud#

When you're ready to move from local evaluation to a shared team workspace:

  1. Sign up at console.blacklake.systems
  2. Export your local policies as JSON from GET /v1/policies on the local API
  3. Import them into the cloud workspace via the console or POST /v1/policies
  4. Update your MCP config to point at the cloud endpoint instead of localhost:3100
  5. Your evaluations history stays in the local SQLite — it does not migrate automatically

The policy model is identical. Receipts from the local workspace are verifiable against the local server; receipts from the cloud workspace verify against api.blacklake.systems. The two chains are separate.


Feature comparison#

FeatureCloudSelf-hosted
Policy, approval, budget, cost, receiptYesYes
MCP gatewayYesYes
SDK govern()YesYes
blx shell wrapperYesYes
GitHub Action policy gateYesYes
Shared workspace (team)YesManual setup
OAuth upstream supportYesNo
Approval email deliveryYesNo
Mobile push approvalsYesNo
Managed retention archiveYesNo
Coverage and risk dashboardsYesYes
Signed NDJSON/CSV exportYesYes
Receipt verification endpointCloud: api.blacklake.systemsLocal: localhost:3100
DatabaseManaged PostgresSQLite (local), Postgres (self-hosted)
Upgrade managementAutomaticManual

The 80/20 answer#

Cloud is the right answer for roughly 80% of teams — fastest time to value, no ops burden, and the integrations that make approvals and exports actually usable in a team context.

Self-hosted is right when an external constraint (air-gap, procurement, sensitivity) makes cloud not viable. If you're self-hosting by preference rather than constraint, start in the cloud first — you can always export your policies and migrate later.

Questions? Contact us or read the cloud product page for more on what the hosted control plane gives you that local self-hosting doesn't.