Both options include the browser app, API, MCP, read-only Git, live editing,
comments, versions, artifacts, and Workspaces API keys.
What one organization means
Every person who signs in joins the instance organization as a member. Manage who can sign in through your OIDC provider or Cloudflare Access policy. Self-hosted Workspaces does not provide the hosted New team, invite, role, or billing controls. Removing a person’s sign-in access does not revoke their Workspaces API keys. Ask each key owner to revoke their keys under Settings > API keys first.Choose the container
Use the container when you can provide:- a Docker host;
- one writable local block-storage volume;
- an HTTPS app origin; and
- an OpenID Connect provider.
Install the container
Pull the release image, attach durable storage, and verify the first boot.
Configure the container
Set OIDC, origins, secrets, storage, and the first API key.
Choose Cloudflare
Use the Cloudflare option when your account has Workers, D1, KV, R2, Artifacts, Durable Objects, and Zero Trust. One app Worker serves an Access-protected browser origin and a public API-key origin. A public, cookieless usercontent Worker serves raw links. Do not put the usercontent origin behind Access. A raw link is the file access credential. Requiring Access on that origin breaks Copy raw link.Deploy on Cloudflare
Create the shared resources and deploy both Workers.
Configure Cloudflare Access
Protect the app origin and verify human sign-in.
Billing, telemetry, and error reporting
Hosted plans, trials, seats, and Stripe billing do not run in a self-hosted instance. The container sends no product telemetry. Cloudflare self-host records no product telemetry unless you add aTELEMETRY dataset binding in your own
account. Neither option reports product telemetry to Plannotator.
The container sends no browser error reports unless you configure your own
Sentry project.
Reviewed July 22, 2026. Maintained by the Plannotator documentation team.