First login
After the Quick start, the PDS is live but unused. This page verifies that the deployment is reachable, the handle resolves correctly, and the account can sign in.
Resolve the handle
Section titled “Resolve the handle”Handle resolution is the step that connects a human-readable name to a DID. Test it directly:
pnpm pds statusThe status command prints the handle, the DID, the resolved DID document, the repository revision, and the blob count. A green check next to Handle resolves confirms that the network can find the account from the handle.
For a manual check, open the resolver endpoint:
https://pds.example.com/xrpc/com.atproto.identity.resolveHandle?handle=alice.example.comThe response is {"did": "did:..."}.
If resolution fails, see Troubleshoot common errors.
Sign in from the Bluesky app
Section titled “Sign in from the Bluesky app”The Bluesky mobile and web apps support custom PDS hosts via the Hosting provider setting.
- Open the Bluesky app (mobile or bsky.app).
- Choose Sign in.
- Tap or click Hosting provider and choose Custom.
- Enter the PDS hostname (for example
pds.example.com). - Enter the handle and the account password set during the wizard.
Once signed in, the app fetches the repository, refreshes the feed, and the account is live.
Optional: register a passkey for OAuth sign-ins
Section titled “Optional: register a passkey for OAuth sign-ins”Passkeys in Cirrus are for the OAuth authorization flow. They are a secure way to login to other Atmosphere apps such as Leaflet or Tangled, without sharing your account password. They do not replace the password for the Bluesky app:
pnpm pds passkey addThe command prints a URL (and QR code) that opens a registration page valid for ten minutes. Follow Set up passkey login for the full flow.
The PDS now serves a live Bluesky account. From here:
- Read How Cirrus is built to understand what the deployment is doing.
- Read Monitor your PDS to keep an eye on it.
- If running multiple accounts (one per Cloudflare Worker), repeat the install for each.