How it fits together
The server is one process with three listeners: the public one that Caddy forwards to, and two private ones for metrics and for the console. It keeps everything in one data directory.
Who talks to it
Section titled “Who talks to it”Apps, the Bluesky app among them, sign in with OAuth or a password and
read and write records over XRPC. The relay at bsky.network subscribes
to the firehose and feeds the AppView, which serves timelines and
notifications back to the apps through the server. The PLC directory holds
the DID documents. The two sidecars are optional.
What it writes
Section titled “What it writes”Each account’s repository is a SQLite file of its own, with its signing key beside it. The shared databases hold the accounts and sessions, the event log of the firehose, cached DID documents, the audit log, and the server’s operator state. Blobs are files, or objects in a bucket. Back up and restore says which to keep.
One host, or an entryway
Section titled “One host, or an entryway”A single node serves everything from one data directory, and this guide is written for it. An entryway keeps the accounts and the OAuth server in front of a member host that keeps the repositories; today one member host is supported.
Further reading
Section titled “Further reading”- docs/architecture: one diagram per part of the server, including the write path, the firehose, OAuth and the extension model.
- docs/SPEC.md: the specification, which says what the server must do and where it differs from the reference server on purpose.
