Skip to main content
Buy now

Security

The data stays in — by architecture, not by promise.

Papyro runs entirely on infrastructure you control; there is no provider between you and your data.

Self-hosted by design

Every note, board, message and file lives in your own database on your own server. We can't see it because it never reaches us.

Signed license, verified locally

Your license key is an Ed25519-signed envelope checked on your own server. Papyro also runs fully air-gapped — the license check-in is optional and switchable off.

Roles & permissions

Global tiers plus per-space, per-board, helpdesk and HR roles. Sensitive actions require a fresh re-authentication step.

Two-factor and step-up auth

TOTP two-factor with backup codes, plus a fresh re-authentication prompt before role changes, hard deletes and privilege grants.

Scoped API keys

Machine access runs on papyro_ keys with their own scopes, listed and revocable per user — never a shared password in a script.

Sessions & audit trail

Users see and end their active sessions; admins get a full, exportable activity log and sign-in history. Accounts are protected with TOTP two-factor authentication and backup recovery codes.

What Papyro never does

  • Send your notes, boards, messages or files anywhere outside your server
  • Send usage analytics, session recordings or crash reports to us
  • Share or sell your data to any third party
  • Lock your data in — you can export and own your database at all times

The one call home: license check-in

We would rather document this than hide it. Roughly every 12 hours your installation posts a small license beacon to admin.papyro.dev, and gets back a signed entitlement so plan, seat and expiry changes reach you without a new key file. This is the same model Metabase and GitLab use for self-hosted licenses.

Try it both ways

In your .env

# nothing set — the baked-in endpoint applies

Every 12 hours the installation posts the beacon below and receives a signed entitlement, so plan, seat and expiry changes reach you without a new key file.

  • Your license id — the identifier printed on your own key
  • An install fingerprint — a one-way SHA-256 of your deployment URL, so two installs sharing a key can be told apart
  • Seat count in use, and the Papyro version you are running
  • A one-time nonce, so a captured response cannot be replayed at you

Compliance & disclosure

Self-hosting puts you in control of your GDPR and KVKK obligations — your data stays in the location you choose, on infrastructure you run. Found a security issue? Report it responsibly to [email protected].