A gateway that keeps unfinished customer sites private — PIN, magic link, staff SSO or share link at the edge, so the project behind it needs no gate code at all.
docker run -v doorman-data:/data -e DOORMAN_ADMIN_TOKEN=… registry.agentics.dk/agentics/pks-agent-doorman:latest$ doorman site add griller --host griller.example --upstream griller:3000 --pinPut a site behind the gate — one command, no infrastructure work
$ curl -X PUT https://kunde.example/_doorman/api/v1/sites/griller -H 'Authorization: Bearer $TOKEN' -d '{…}'The same call over the admin API, for a platform integrating without the CLI
Agent Doorman stands in front of web projects that are real enough to show a
customer and not ready for the world. It resolves the site from the Host
header, decides whether this visitor may in, and only then proxies to a
container that has no public hostname of its own.
The project behind it stays a plain web app. No PIN page, no noindex policy,
no "preview" banner, no allow-list of reviewer emails — none of that belongs in
the product you are building for the customer, and with doorman none of it is
there.
visitor ──▶ your reverse proxy (TLS, wildcard host)
▼
doorman resolve site → crawler policy → gate → proxy → inject
▼
customer container http://<network-alias>:<port> (no FQDN)
X-Robots-Tag: noindex, nofollow, noarchive on every
response including the gate page, a robots.txt doorman serves itself, an
injected <meta name="robots">, and an optional user-agent block.text/html responses only. JSON,
assets, streams and WebSockets pass through untouched.expiresAt).doorman, a command-line client over that API:
contexts, four commands to gate a site, and a doctor for the whole path.Status: beta. A single instance is assumed — PIN and share-link use counters are guarded in-process, so two replicas over one volume would make "single-use" mean "rarely reused".
The whole control surface — sites, PINs, share links, magic links and the audit log — and how a platform integrates against it.
A review widget doorman injects into any gated site, and an MCP server that hands the page the visitor is looking at to Claude or ChatGPT — live edits, then a ticket.
Audience measurement at the gateway: page views, sessions and daily visitors without touching the site — cookieless by default, and honest about what it cannot tell you.
doorman — a command-line client for the admin API: contexts, putting a site behind the gate, handing out PINs and share links, and a doctor that checks the whole path.
The cookie contract between a site's own banner and the gateway underneath it — Consent Mode v2 vocabulary, a server-set mirror that outlives the browser cap, and the sources behind every rule.
Run doorman locally, put a site behind it, and unlock it with a PIN — no TLS, DNS or reverse proxy needed.
Run doorman in front of a whole estate: wildcard host, certificate, the shared network, and adding a customer with no infrastructure work.