Self-hosting Gatehouse for regulated teams
For many teams, the question isn't whether to govern AI agents. It's whether the governance layer can live inside the boundary they already defend. For banks, healthcare companies, public sector teams and anyone with strict data residency rules, the answer has to be yes.
Gatehouse was built to be self-hosted from the start.
#One process, one database
Gatehouse is a single Node.js process with a SQLite database on a volume. There's no queue, cache or separate worker to operate. That keeps the footprint small and the review short: one container image, one volume, one secret.
You can run it with Docker Compose on a VM or with the Helm chart on Kubernetes. Both are in the repository under deploy/.
#Nothing leaves unless you say so
A gateway that sits in front of your most sensitive systems shouldn't talk to anyone you didn't choose. Gatehouse makes no outbound connections except to:
- the MCP servers you add,
- your identity provider,
- your SMTP server,
- Slack, if you turn on Slack approvals,
- your SIEM, if you turn on audit streaming.
There's no telemetry and no license server. It runs fully air-gapped.
#Your keys
Every stored credential is encrypted with a master key that you provide. In production, Gatehouse refuses to start without one.
The key can come from a file, which suits Kubernetes and Docker secrets, or from a command at startup. That means the key can live in AWS KMS or HashiCorp Vault and never touch the disk:
GATEHOUSE_MASTER_KEY_COMMAND="vault kv get -field=key secret/gatehouse"
#Your logs
The audit log is append-only and hash-chained, so changes are detectable even by someone with database access. Auditors can verify the chain from the console, the CLI or the API, and export CSV for a review.
For central monitoring, Gatehouse streams every entry as it's written to a signed JSON webhook or Splunk HEC.
#Your identity
Gatehouse plugs into the identity stack you already run: SAML or OIDC single sign-on with Okta, Entra ID and others, SCIM provisioning so joiners and leavers flow through automatically, required two-step verification, and an IP allow-list for the console, API and agent endpoint. Owners can keep a break-glass password for when the identity provider is down.
#Operating it
- Backups are one command, safe while Gatehouse runs:
npm run cli -- backup /data/backups/gatehouse-$(date +%F).db. - Upgrades are an image change and a restart.
- Replicas: run one. SQLite on a volume means a single writer, and the Helm chart uses the
Recreatestrategy.
The full guide is in Self-hosting. If you need help with a private cloud or VPC deployment, that's part of our Enterprise plan.
More from the blog
Write agent policies for the groups you already have
Groups in Gatehouse, synced from Active Directory, LDAP, SCIM or SSO, so AI agent access follows your org chart.
Tool poisoning and rug pulls, explained
How MCP tool descriptions can carry hidden instructions, how a trusted server can change under you, and how Gatehouse defends against both.