···11# PDS this dashboard manages
22PDS_HOSTNAME=pds.example.com
33PDS_ADMIN_PASSWORD=changeme
44+# For a PDS without an admin password (e.g. tranquil-pds): set this to the handle or DID
55+# of an account with admin rights. PDS_ADMIN_PASSWORD is then that account's password
66+# (an app password works). Leave empty for the reference PDS.
77+PDS_ADMIN_IDENTIFIER=
4859# Relay used for sync status / requestCrawl
610RELAY_HOSTNAME=bsky.network
+10
README.md
···4646`server/.env` and generate the hash with
4747`node -e "console.log(require('bcryptjs').hashSync('<password>', 10))"`.
48484949+### Other PDS implementations
5050+5151+The reference PDS authenticates admin calls with `PDS_ADMIN_PASSWORD` over basic auth.
5252+For implementations without an admin password, like
5353+[tranquil-pds](https://tangled.org/tranquil.farm/tranquil-pds), set
5454+`PDS_ADMIN_IDENTIFIER` to the handle of an account with admin rights and put that
5555+account's password in `PDS_ADMIN_PASSWORD`. The dashboard then signs in as that account
5656+and sends bearer tokens instead. Sign-in is headless, so use an app password or keep 2FA
5757+off that account.
5858+4959### Labelers
50605161`server/labelers.json` (gitignored, copy `server/labelers.json.example`):