Pingtower Docs
Docs The iOS app Pairing your own box

Pairing your own box

Redeem a join code from a self-hosted daemon and the app opens that tenant directly, while pingtower.com relays the pages.

Pairing joins two things: an account on pingtower.com, which is what the app signs in with, and a tenant on a box you run, which is where the data lives. Once paired, the app talks to the box for everything and to pingtower.com only for the account and for push.

  1. On the box, mint a join code

    pingtower pair --email [email protected]
    

    It prints one code starting with ptj_. The code bundles the box’s URL, the tenant, and a one-shot pairing secret. It is valid for one hour and can be redeemed once. Owners and admins can also mint codes from the API with POST /v1/pair/codes, with ttl_seconds up to seven days, to seat teammates without a shell.

  2. In the app, redeem it

    Tenant picker → Join a box, paste the code. The app redeems it against your box, receives a box-minted API key, and hands pingtower.com a receipt that the box confirms once. From here the tenant appears in your list like any other.

  3. Turn on the relay

    The app then records the relay credential on the box. This wires every project, present and future, to a webhook integration named “pingtower.com relay”. Pages now reach your phone; log lines never leave the box.

What is different about a paired tenant

  • Members and invites are managed on the box, not on pingtower.com; the account screen says so.
  • Plan and usage show nothing, because the box enforces its own limits.
  • Removing someone from the box stops their access to the data. Revoking their pairing stops their pages. Neither implies the other.

What pingtower.com sees

The pairing itself: which account is pageable for which tenant on which box. For each relayed page, the alert event including the triggering line, which is forwarded to Apple and kept only as a short-lived deduplication row. If you never pair, nothing is sent.

Last updated 1 Sep 2026 Report a problem with this page