docs/deploy/deployment-modes.md
Paperclip supports two runtime modes with different security profiles. Reachability is configured separately with bind.
local_trustedThe default mode. Optimized for single-operator local use.
loopback# Set during onboard
pnpm paperclipai onboard
# Choose "local_trusted"
authenticatedLogin required. Supports two exposure policies.
authenticated + privateFor private network access (Tailscale, VPN, LAN).
loopback, lan, tailnet, or custompnpm paperclipai onboard
# Choose "authenticated" -> "private"
Allow custom Tailscale hostnames:
pnpm paperclipai allowed-hostname my-machine
authenticated + publicFor internet-facing deployment.
loopback behind a reverse proxy; lan/custom is advancedpnpm paperclipai onboard
# Choose "authenticated" -> "public"
When migrating from local_trusted to authenticated, Paperclip emits a one-time claim URL at startup:
/board-claim/<token>?code=<code>
A signed-in user visits this URL to claim board ownership. This:
Update the deployment mode:
pnpm paperclipai configure --section server
Runtime override via environment variable:
PAPERCLIP_DEPLOYMENT_MODE=authenticated PAPERCLIP_BIND=lan pnpm paperclipai run