Getting started
A local demo with the embedded development identity provider.
Two kinds of example:
deploy/local/ in the source
repository starts the whole stack on *.localhost (no domain, no
external account). ./run.sh prints the URLs.routes.json for a setup that
needs an external service (Keycloak, Google, GitHub). It is
schema-validated; adapt it to your infrastructure.| Example | What it shows | Runnable |
|---|---|---|
| Getting started | The embedded development identity provider, its default users and a user badge. | Yes, no Docker |
| Direct OIDC | One OIDC issuer used directly, with roles and scopes read from that issuer and no federation or IAM. | Yes, Docker |
| Multi-app SSO | A second application added to the same provider and cookie domain, reusing the login session. | Yes, Docker |
| Cross-domain SSO | Unrelated domains sharing one IdP session, one provider per domain. | Yes, Docker |
| Embedded IAM | cladone-auth federates an IdP, maps claims and stores user grants. | Yes, Docker |
| High Availability | Several Gate One replicas behind a load balancer with shared Redis state. | Yes, Docker |
| Own account panel | The application’s own burger panel reads the session instead of the built-in badge. | Yes, no Docker |
| Injectable UX | User badge, UI gating, injection bundle and a nonce CSP. | Yes, no Docker |
| Usage plugin | A signed audit plugin, a trust store, the WAL and per-type durability. | |
| Turnstile | A public form and a whole-page gate protected by Cloudflare Turnstile, with the test keys. | Needs internet |
| Keycloak with Google | A classical external IAM: Keycloak federates Google, Gate One trusts one Keycloak issuer. | Pattern |
| APIs and MCP | A browser provider, a JWT provider, an identity-conditioned API route and an MCP service. | Pattern |
| MCP tools | A REST-derived MCP service, a proxied MCP server and an aggregating set. | Pattern |
| IAM + IdP bridge | An http-bridge provider returning identity and IAM facts. | Pattern |
| Enhance a proxied site | An external site proxied through Gate One with an injected userscript. | Needs internet |
The runnable demos live in the source repository under
deploy/local/.
They need the Gate One binaries (download a release and verify the
checksums) and, for the OIDC demos, Docker Compose.
The raw files are also served under /examples/:
examples/getting-started/routes.jsonexamples/direct-oidc/routes.jsonexamples/sso-multi-apps/routes.jsonexamples/cross-tld-sso/routes.jsonexamples/keycloak-google/routes.jsonexamples/embedded-iam/embedded-iam.json
and routes.jsonexamples/high-availability/routes.jsonexamples/protect-api-mcp/routes.jsonexamples/mcp-tools/routes.jsonexamples/http-bridge/routes.jsonexamples/account-panel/routes.json,
panel.js,
panel.css and
index.htmlexamples/injectable-ux/routes.json
and bundle.jsonexamples/usage-events/routes.json, audit.manifest.json and trust-store.jsonexamples/turnstile/routes.jsonexamples/turnstile-gate/routes.jsonThe proxied-site example is kept in the source repository:
examples/siteproxy/.
A starting point with Traefik, TLS, Gate One and cladone-auth, ready to
copy to a VPS, is
deploy/vps/.
A local demo with the embedded development identity provider.
Point Gate One straight at a single OIDC issuer, with no federation and no IAM.
Add a second application to an existing login session.
One IdP login across app-a.com and app-b.fr, with one provider per domain.
Federate Google in Keycloak, then point Gate One at one Keycloak issuer.
Federate IdPs in cladone-auth, map claims and assign user grants.
Balance load across several Gate One replicas with shared session and revocation state.
A browser provider, a JWT provider and an MCP protected resource.
Replace the built-in user badge with a burger side panel owned by the application.
An http-bridge provider returning identity and IAM facts while Gate One keeps policy enforcement.
A REST-derived MCP service, a proxied MCP server and an aggregating set, with delegated credentials.
Badge, gating, injection bundle, 403 banner and CSP.
Proxy an external site through Gate One and inject a userscript into every HTML page.
A signed audit plugin, a trust store and a durable WAL.
A public form and a whole-page gate protected by Cloudflare Turnstile.